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

L3switch(l3fwd) #243

Merged
merged 27 commits into from
Oct 25, 2021
Merged

L3switch(l3fwd) #243

merged 27 commits into from
Oct 25, 2021

Conversation

bdevierno1
Copy link
Contributor

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.

This PR includes
Resolves issues
Breaking API changes
Internal API changes
Usability improvements
Bug fixes
New functionality
New NF/onvm_mgr args 👍
Changes to starting NFs
Dependency updates
Web stats updates

Merging notes:

  • Dependencies: None

TODO before merging :

  • PR is ready for review

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:

  • Documentation describes purpose of NF, all arguments, and basic usage
  • NF stores all non-global state in a struct referenced by nf->data
  • NF performs initialization in a function_table->setup function and frees dynamic memory before exiting

Vivek-anand-jain and others added 9 commits June 25, 2020 16:56
* 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
koolzz
koolzz previously approved these changes Jul 10, 2020
Copy link
Member

@koolzz koolzz left a 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

examples/l3switch/l3switch.c Outdated Show resolved Hide resolved
khaledshahine
khaledshahine previously approved these changes Jul 12, 2020
@bdevierno1
Copy link
Contributor Author

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

@twood02
Copy link
Member

twood02 commented Jul 22, 2020

@sreyanalla will test again

@twood02 twood02 added this to the ONVM 20.07 milestone Jul 22, 2020
sreyanalla and others added 4 commits July 29, 2020 15:03
lua pktgen.set_mac() now takes three args: port, src|dst, mac addr
blacklists outdated as of pktgen v2.7.0
@bdevierno1 bdevierno1 changed the title L3switch L3switch(l3fwd) Aug 3, 2020
@twood02 twood02 removed this from the ONVM 20.08 milestone Aug 28, 2020
examples/l3fwd/l3fwd.c Show resolved Hide resolved
examples/l3fwd/l3fwd_lpm.c Show resolved Hide resolved
dennisafa
dennisafa previously approved these changes Dec 20, 2020
twood02
twood02 previously approved these changes Oct 25, 2021
@twood02 twood02 added the ready-for-gatekeeper 🚪 PRs that have been approved and are ready for a final review/merge label Oct 25, 2021
@dennisafa dennisafa dismissed stale reviews from twood02 and themself via 67c7fa9 October 25, 2021 18:09
@dennisafa dennisafa merged commit e101afa into sdnfv:develop Oct 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new NF 🛰️ ready-for-gatekeeper 🚪 PRs that have been approved and are ready for a final review/merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants