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

Address table checks: Consolidate, refactor & refine #185

Open
tswilliams opened this issue Mar 2, 2020 · 0 comments
Open

Address table checks: Consolidate, refactor & refine #185

tswilliams opened this issue Mar 2, 2020 · 0 comments

Comments

@tswilliams
Copy link
Collaborator

tswilliams commented Mar 2, 2020

There are a few different checks on address table contents across the uHAL packages - in particular:

  • Address table overlap checks
    • Performed when address tables parsed. Warning message printed each time a file fails the check. Details of node overlaps written to file under /tmp - one line per overlap.
  • Derived node classes
    • Performed when address tables parsed. Warning message printed each time a derived node class cannot be found
  • gen_ipbus_addr_decode
    • Script exits early if values for fwinfo attribute are inconsistent with node's address

In some scenarios it's useful to avoid some of these checks (e.g. avoiding the derived node class check if creating a plain node tree in gen_ipbus_addr_decode), and in other scenarios order it makes more sense to stop the program if the check fails (e.g. derived node checks in your main online software application, or ensuring that your FW CI jobs fail if address tables contain overlaps).

So, it would be useful update the NodeTreeBuilder and ConnectionManager::getDevice methods to give the ability to skip these checks when creating a HwInterface instance, and add a uniform (or even common) API to run each of these checks at a later point in time, with the ability for the user to:

  • Select the consequence of the checks failing (e.g. just warning message printed, or exception thrown)
  • Select from a few different levels of checks, if appropriate (e.g. ignoring hierarchical nodes in address table overlap checks)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant