Local readout application overhaul
Description
This MR consists of an overhaul of the local readout application, improving its performance and versatility. At this stage, it remains a standalone application (but no longer an example code). In more detail,
- The application now uses one lcore per port (RX thread) and one lcore per queue (dump thread)
- The user can configure the application parameters through the CLI
- For simplicity reasons, the readout application is now compiled in C++ mode
- The data plane remained in C-style as much as possible
- Improvements in the application monitoring
- Monitor the main packet mempool availability
- Create per-queue statistics counters
- Various bugfixes:
- Do not crash when a port has no associated queue
- Send the queue MAC address on the right port
- Do not segfault when the main mempool is empty and FDB update packets must be sent
Related Issue
Fixes #203 (closed).
How Has This Been Tested?
Works like a charm on the GE1/1 integration setup in b904 as well as at p5 for comics, synthetic tests, and S-curves.
Types of changes
-
Bug fix (non-breaking change which fixes an issue) -
New feature (non-breaking change which adds functionality) -
Breaking change (fix or feature that would cause existing functionality to change)
Checklist:
-
My code follows the code style of this project. -
My change requires a change to the documentation. -
I have updated the documentation accordingly. -
I have read the CONTRIBUTING document. -
I have added tests to cover my changes. -
All new and existing tests passed.
Edited by Laurent Petre