Skip to content

Local readout application overhaul

Laurent Petre requested to merge feature/local-readout-overhaul into main

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

Merge request reports