-
Notifications
You must be signed in to change notification settings - Fork 136
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
L3switch(l3fwd) #243
L3switch(l3fwd) #243
Conversation
* Update the onvm manager, nflib and examples to use the updated DPDK APIs. * Update install.sh to enable the igb_uio module build (CONFIG_RTE_EAL_IGB_UIO is disabled by default since v20.02)
strncpy raises (precautionary) werrors during onvm compilation with ubuntu 20 compiler (gcc 9); gnu/gcc recommends use of memcpy to avoid warning
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems fine overall, I didn't actually run the NF so someone else pls give this an actual hand on test
Updated hash pointers to be global variables instead after @sreyanalla review. Originally used nf->data but this will be freed by the manager upon NF shutdown therefore it would not be possible to deallocate hash table memory. Thanks @sreyanalla |
@sreyanalla will test again |
lua pktgen.set_mac() now takes three args: port, src|dst, mac addr
blacklists outdated as of pktgen v2.7.0
Layer 3 forwarding application.
Summary:
Based on DPDK's layer 3 forwarding example. There are two modes longest prefix match table as well as hash table lookup.
There are a few differences between this version and DPDK's. Use of openNetVM's flow API was broadly used. This allows data to be stored with each rule or flow when added to the table. This is in contrast to DPDK's version where it uses the key value to get an index. The index value is then used to perform a lookup in an array.
Usage:
-p <print_delay>: number of packets between each print, e.g.
-p 1
prints every packets. Default is every 1000000 packets.-e : Enables exact match mode.
-h : Sets the hash entry number.
For example: ./go.sh 1 -e -h 7
Will enable exact match mode with hash entry number set to 7. Hash entry number will default to 4 if not manually set or not running in exact match mode.
Merging notes:
TODO before merging :
Test Plan:
Use Pktgen. Configure the src and destination address to match your desired flow. Check if traffic is correctly sent out of the correct port.
Review:
NF Checklist:
nf->data
function_table->setup
function and frees dynamic memory before exiting