FRRouting / frr

The FRRouting Protocol Suite
https://frrouting.org/
Other
3.12k stars 1.2k forks source link

Zebra doesn't compile with new versions of DPDK - I have a patch but zebra still crashes #15910

Open EasyNetDev opened 2 months ago

EasyNetDev commented 2 months ago

Description

I've working a little bit to fix Zebra compilation with --enable-dpdk option. There are few changes in DPDK from moment when FRR implemented functions for DPDK. Ex: dev_info->device->name now should be rte_dev_name(dev_info->device) or dev_info->driver_name now is rte_driver_name(rte_dev_driver(dev_info->device))

I can release a patch for DPDK 24.0. The old calls I found that are in DPDK 18.0.

But even if is compiling without issues is crashing in another function: zd_dpdk_port_show especially at line:

                if (CHECK_FLAG(dport->flags, ZD_DPDK_PORT_FLAG_INITED))

My question is for this problem: does zebra have some any future for DPDK? Should I push this PR to fix compilation for newer versions of DPDK? Can we fix the other issues?

Version

FRRouting 10.1-dev (R05) on Linux(6.6.15-amd64).

How to reproduce

Compile frr with --enable-dpdk

Expected behavior

Compilation should work

Actual behavior

Compilation fails because the DPDK API changed.

Additional context

No response

Checklist

donaldsharp commented 2 months ago

We would love for someone to take up the mantle of keeping this running. Please submit a patch and we'll get it in. As for the crash, if you can submit a patch too, or send us a pointer to the full crash decode and maybe we can help you fix it.

EasyNetDev commented 2 months ago

Hi @donaldsharp,

Than I will prepare my patch for compilation issue. Perhaps tomorrow I will push a PR. Than we can troubleshooting the error. I will explain some issues I'm suspecting.

EasyNetDev commented 1 month ago

We would love for someone to take up the mantle of keeping this running. Please submit a patch and we'll get it in. As for the crash, if you can submit a patch too, or send us a pointer to the full crash decode and maybe we can help you fix it.

Let me do a GDB backtrace. Is very strange that the system doesn't output a coredump . I set coredump in ulimits and in /etc/security/limits or /etc/security/limits.d/ and still doesn't give me the coredump.

In the past I was able to fix this issue.

EasyNetDev commented 1 month ago

I will do some tests now to see where is crashing.