sdnfv / openNetVM

A high performance container-based NFV platform from GW and UCR.
http://sdnfv.github.io/onvm/
Other
262 stars 136 forks source link

Service chaining example #60

Open twood02 opened 6 years ago

twood02 commented 6 years ago

This issue describes a simple bug/improvement for the OpenNetVM code, and is a great way for YOU to get involved with improving this open source project! If you want to fix it, just create a pull request with the fix as detailed in the Contributing document. If you have questions, post here!


By default, OpenNetVM creates a default service chain with the action "send to NF with service ID 1". However, when the manager starts it prints "Default service chain: send to sdn NF". We should revise this comment to say "send to service ID 1"

https://github.com/sdnfv/openNetVM/blob/develop/onvm/onvm_mgr/onvm_init.c#L249

We also should create a new NF that demonstrates setting up different default service chains, or service chains for specific flows. This NF would show how to use the Flow Director API. The NF could be very simple -- it might just start up, create some new rules with the flow director, and then exit (the rules will still apply to new traffic that arrives).

knodir commented 5 years ago

Hi @twood02,

I would like to take a stab at this. Is examples/test_flow_dir good place to add this feature? I.e., in addition to its current behaviour, test_flow_dir would also show/add/delete rules based on CLI input by using Flow Director API (as in your last paragraph). Or is it better to create another NF, say flow_dir_setup, that only deals with the flow rule setup without handling packet steering (that current test_flow_dir does).

I feel the second approach would be simpler, but when users want to check if their flow rules got actually applied, they would need packet steering capability as well. So, perhaps the first option is more practical.

koolzz commented 5 years ago

Hi @knodir, as you have noticed it would be useful for the test flow dir to have this functionality as we could test the added rules and also it wouldn't create a whole new NF which is cleaner to maintain. The flow rules are essentially just startup configuration so it should be done on NF setup, therefore it should be easy to build on top of the existing NF(probably won't need to modify the existing packet handler logic)

We're always happy to see people contributing so If you have any questions feel free to ping me

knodir commented 5 years ago

Thanks for the quick response, @koolzz. I'll get started with adding this functionality to test_flow_dir then.

catherinemeadows commented 4 years ago

@knodir Hello, just wanted to follow up on this and see if this is still in progress or if you need any help/feedback

knodir commented 4 years ago

Oh, hi @catherinemeadows! It seems I moved on to the other parts of the code and never completed git commit 9025f45. I'll get back to this sometime this weekend. Let me know if you need it more urgently.

catherinemeadows commented 4 years ago

@knodir Sounds great! No rush, just wanted to check in. Let us know if you have any questions.

bdevierno1 commented 4 years ago

Hi @knodir are you currently working on this? If not I would like to volunteer to take this up.

knodir commented 4 years ago

Hi @bdevierno1,

Yes, please go ahead to take over this. I tried to complete this couple weeks ago but the environment I had during my 9025f45 commit development is not there anymore. So, I don't have a proper setup to test this feature anymore. Feel free to use parts of my half-baked changes in 9025f45.

Thanks for chiming in!

twood02 commented 3 years ago

@stevensse21 is going to try this.

Step 1:

Use the flow_director API to change the service chain rule.