diff options
Diffstat (limited to 'flowtable/README.md')
-rw-r--r-- | flowtable/README.md | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/flowtable/README.md b/flowtable/README.md new file mode 100644 index 0000000..03c4a04 --- /dev/null +++ b/flowtable/README.md @@ -0,0 +1,74 @@ +# A flowtable plugin + +Provides a flowtable node to do flow classification, and associate a flow +context that can be enriched as needed by another node or an external +application. The objective is to be adaptable so as to be used for any +statefull use such as load-balancing, firewalling ... + +Compared to the classifier, it stores a flow context, which changes the following: +- a flow context (which can be updated with external informations) +- it can offload +- flows have a lifetime + +## Build/Install + +Patches summary: + - The flowtable plugin: 0001-Add-flowtable-feature.patch + - Example nodeusing the flowtable: 0002-Add-Port-Mirroring-feature.patch + - The est scripts I used: 0003-test-scripts.patch + + +The tests scripts are used are under ft-test. +They tests the functionality versus the classifier. + +Apply the patches to vpp: +``` +git am -3 0001-Add-flowtable-feature.patch +git am -3 0002-Add-Port-Mirroring-feature.patch +git am -3 0003-test-scripts.patch +``` + +After that, you shoud be able to build the plugins as part of the make *plugins* +target as usual: +``` +make bootstrap +make build +make build-vpp-api +make plugins +``` + +## Test + +In itself, the flowtable only provides a context and an API. +I added a simple port-mirroring as a test. + +I might add some other test examples if needed. + +## Administrative + +### Current status + +Currently : +- Default behavior is to connect transparently to given interface. +- Can reroute packets to given node +- Can receive additional information +- Can offload sessions +- Only support IP packets + +I'm still working on this, do not support multithreading, and haven't +gone through performance tests yet. + +Planned : +- improve flow statistics, and add a way to get them back at expiration time +- improve timer management (tcp sm state) + +### Objective + +The objective of this project is to provide a stateful node with flow-level +API, available for consecutive nodes or external applications. + +### Main contributors + +- Gabriel Ganne - gabriel.ganne@qosmos.com +- Christophe Fontaine - christophe.fontaine@qosmos.com + (https://github.com/christophefontaine/flowtable-plugin) |