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

ONVM v19.07 #156

Merged
merged 12 commits into from
Aug 7, 2019
Merged

ONVM v19.07 #156

merged 12 commits into from
Aug 7, 2019

Conversation

koolzz
Copy link
Member

@koolzz koolzz commented Aug 7, 2019

Onvm v19.07

kevindweb and others added 12 commits June 12, 2019 13:19
This PR removes redundant sleep calls after printing and moves the
dependency installation to CI server startup.

Commit log:

* Save performance in ci

* Add flask to install

* Add error handling in run_ci and fix docs

* Delete new line
This PR allows CI to run the following for unauthorized users:
 - Linter check
 - Branch check

Commit log:

* Save performance in ci

* Add flask to install

* Allowed for public linting of unauthorized users

* Added run mode for future advancements

* Remove exit statement

* Add error handling in run_ci and fix docs

* Delete new line
Previously CI didn't have an execution queue, thus, every request sent
when CI was running was disregarded. This pr implements a queue of
requests for CI to resolve this issue.

Commit log:

* Save performance in ci

* Add flask to install

* Allowed for public linting of unauthorized users

* Starting the queue

* Start to fixing the queue problem

* Added run mode for future advancements

* Major fixes to ci list system

* Remove debug lines

* Clean up definitions

* Remove exit statement

* Add error handling in run_ci and fix docs

* Create polling thread for requests

* Delete new line

* Account for run mode from #140

* Errors are much more difficult in threads :(

* Smarter than using tuples

* Added event-based handling instead of polling

* Let request handler clears event
Running a flow table lookup on every packet is expensive and as the
functionality isn't always used we have decided to create a macro to
disable it. The functionality will still be enabled by default, but if
it is unused disabling it should boost performance. 

Commit log:

* Macros for running flow table lookup

* Updated comment about disabling flow table lookup
Updates the cJSON library version to v1.7.12 , doesn't have any
collisions with onvm code.
Adds functionality for NFs using shared core mode to sleep when no
messages(and no packets) are enqueued onto an NF's message ring.

Commit log:

* Shared cores for messages

* Rm line

* nf context, not nf

* Moved functionality to main thread

* Adding macro for msg threshold

* Update NF_Dev.md
This PR adds a NFD library, a C++ based NF developing compiler 
designed by Wenfei's group (http://wenfei-wu.github.io/) from IIIS,
Tsinghua University, China. 

NFD compiles the NF logic into common C++ program by using table-form
language to model NFs' behavior. With NFD's help, NF developer, free
from the problems that porting NFs into specific network environment or
deploying platforms, can easily concentrate on designing NF's core
logic. 

A list of provided example   NFs:
 - Stateful Firewall
 - Stateless Firewall
 - DNS Amplification Mitigation
 - Heavy Hitter Detection
 - NAPT
 - SYN Flood Detection
 - UDP Flood Detection
 - Super Spread Detection

Commit log:

* replace direct assigning with memcpy function

* add NFD-NF stateful_firewall in examples/

* update

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update stateful_firewall.cpp

* add more NFs

* update NFD-NFs' go.sh file and start_nf.sh file

* delete simple_c++

* Added nf tag and core to stats

* Made constants for the stats in the header file

* Fixed verbose stat line-up

* Fixed service id totals stats

* clang formatting

* Update README.md and `go.sh` file in NFD dir

* add -march=native to makefile

* remove some comments and change some places into actual NF name

* add Makefile in NFD/

* Update README.md

* Fixed style of output

* Fixed shared cpu verbose

* Patch for the new ONVM 19.05 API

* Moved print formatters to onvm_stats.h

* Fixed up stat lines

* fixed some errors in HHD

* fixed dpdk I/O interface used

* Fixed macro styling

* Fix console macros

* Fix stats output macro consistency

* Update APIs

* fix some errors

* update Readme

* update readme and fixed some logic errors

* update README and fixed some errors

* fixed some parsing errors

* update testing information

* delete error NF

* delete error NF

* update README

* fixed model

* delete unnecessary code

* add base IP

* Update .gitignore
Some of the links in the style guide where broken, this pr fixes them.

Commit log:

* Fix google style guide links

* Fixed extra tilda character
Previously the environment setup script would print a wrong message if
it wasn't called directly from its own directory.

Commit log:

* Fixed environment setup message

* Removed cd and changed variable name
This PR adds a feature that allows the onvm_mgr to remap a NF to a
different core, if such opens out(when another NF shuts down). This
feature is disabled by default, to enable it set the
`ONVM_NF_SHUTDOWN_CORE_REASSIGNMENT` macro to true.

Commit log:

* Add core reassignment on NF shutdown

* Fix core allocation order, cleanup

* Better naming, fix typos

* Fix minor style changes

* Fix typo

* Fix extra whitespace

* Final fixes

* Disable core reallocation by default
CI will now run Pktgen as an additional test metric.

Commit log:

* Save performance in ci

* Add flask to install

* Allowed for public linting of unauthorized users

* Starting the queue

* Start to fixing the queue problem

* Added run mode for future advancements

* Major fixes to ci list system

* Remove debug lines

* Clean up definitions

* Remove exit statement

* Add error handling in run_ci and fix docs

* Create polling thread for requests

* Delete new line

* Account for run mode from #140

* Errors are much more difficult in threads :(

* Smarter than using tuples

* Added event-based handling instead of polling

* Let request handler clears event

* Initialize ci for pktgen

* Huge update to pktgen configuration

* Updated gitignore for log files

* Added speed tester and pktgen in conjunction

* Fix redundancies and bugs

* Disabled flow lookup and created better benchmarks

* Fixed things so nn30 works with pktgen

* Fixes from github comments

* Make results more stable by restarting manager

* Added fixes from review and redundancies

* Fixes from github review

* Additions to readme about CI developments

* Add a section about Pktgen helper nodes

* Fix missed line

* Add compatability for different interfaces

* Fixes for user input and debugging

* Fixes for Pktgen and binding interface

* Renaming a ton of files

* Fixed symbolic link

* Added benchmark info to README and renamed file

* Fix Pktgen install requested changes

* Address Github change requests

* Adjustments to interface configuration

* Fixed manager debug
Commit log:

* Update Releases.md

* Update Releases.md

* Update Releases.md

* Apply suggestions from code review

Co-Authored-By: Tim Wood <timwood@gwu.edu>

* Update Releases.md

* Update Releases.md
@onvm
Copy link

onvm commented Aug 7, 2019

In response to PR creation

CI Message

Your results will arrive shortly

@koolzz koolzz merged commit 30cf49a into master Aug 7, 2019
Copy link

@onvm onvm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In response to PR creation

CI Message

Run successful see results:
❌ FIX PR submitted to master branch instead of develop
❌ PR drops Pktgen performance below minimum requirement
✔️ Speed Test performance check passed
✔️ Linter passed

[Results from nimbnode17]

  • Median TX pps for Pktgen: 6373333
    Performance rating - 63.73% (compared to 10000000 average)

  • Median TX pps for Speed Tester: 40274254
    Performance rating - 100.69% (compared to 40000000 average)

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

Successfully merging this pull request may close these issues.

5 participants