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

Clean up and modularize the NDT server codebase #139

Open
aaronmbr opened this issue Mar 31, 2015 · 6 comments
Open

Clean up and modularize the NDT server codebase #139

aaronmbr opened this issue Mar 31, 2015 · 6 comments

Comments

@aaronmbr
Copy link
Contributor

Original issue 139 created by aaronmbr on 2014-03-25T08:56:07.000Z:

It would be great to clean up and modularize the NDT server codebase, especially with regard to having it more easily support new protocols and/or tests.

@aaronmbr aaronmbr self-assigned this Mar 31, 2015
@aaronmbr
Copy link
Contributor Author

Comment #1 originally posted by aaronmbr on 2014-03-31T05:21:33.000Z:

<empty>

@aaronmbr
Copy link
Contributor Author

Comment #2 originally posted by aaronmbr on 2014-04-09T08:57:53.000Z:

Could you provide more information about how modularization should look like?

@aaronmbr
Copy link
Contributor Author

Comment #3 originally posted by aaronmbr on 2014-04-16T11:56:15.000Z:

Added document describing required changes to be made on server's side to add new test.

@aaronmbr
Copy link
Contributor Author

Comment #4 originally posted by aaronmbr on 2014-05-07T11:57:41.000Z:

From Aaron's mail:

My preference would be to focus on code readability, and to clean up the web100 handling a bit as part of that. The main web100srv.c is almost unreadable. It’d be good to try to separate out the ‘child’ handling from the test scheduling, and the ‘parent’ handling. As a simple example, the single ‘cleanup’ function that handles all signals for all processes, no matter what, makes no sense. The amount of ‘global’ variables needs to be pared back considerably to ensure that the logic of the workflow is more straight-forward.

Related to that, it’d be nice to modularize the web100/10g work to make it cleaner, especially for including things like tcp_info. e.g. have the test functions fill out generic tcp statistics that are opaque to the “child” handler, and have some functions that take the generic tcp statistics objects from the tests, and based on web10g, web100, or tcp_info, fill out the NDT expected response values (e.g. the c2sspd variable)

I’m vaguely envisioning something like:

foreach test in tests_to_perform():
test.results = run_test(test)

ndt_results = build_ndt_results(tests)

I’m envisioning that ndt_results object would have all the individual elements

The build_ndt_results function then might look like:

 results.rtt = calculate_rtt(tests[’s2c_results’])

and then the protocol handling takes that “results” object, and spits it out.

@aaronmbr
Copy link
Contributor Author

Comment #5 originally posted by aaronmbr on 2014-05-07T12:04:24.000Z:

To sum up, this ticket includes the following tasks:

  1. Separate the specific protocol from the general scheduling/testing frameworks
  2. Make it easier to add a new/modified test

The starting point of this work should be changes from the aaron-tcp_stats_cleanup branch.

@aaronmbr
Copy link
Contributor Author

Comment #6 originally posted by aaronmbr on 2014-06-25T08:34:13.000Z:

<empty>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant