aboutsummaryrefslogtreecommitdiffstats
path: root/flowtable/README.md
diff options
context:
space:
mode:
authorGabriel Ganne <gabriel.ganne@qosmos.com>2016-10-25 10:14:23 +0200
committerGabriel Ganne <gabriel.ganne@qosmos.com>2016-10-25 13:16:05 +0200
commit55fd743fd66df0005f6f506c59a44d2ecd3aabdf (patch)
treed54f3f57f9af430cf483ad7590859fc4319ffea5 /flowtable/README.md
parentfbaa56c33664c57083e6e96c7086e8afd95077b9 (diff)
flowtable - initial commit
Adds vpp patches for: - the flowtable plugin - a port-mirroring plugin to work with the flowtable - test scripts Change-Id: I61d988342921b994cf1a6c0b784fa7e75ca07276 Signed-off-by: Gabriel Ganne <gabriel.ganne@qosmos.com>
Diffstat (limited to 'flowtable/README.md')
-rw-r--r--flowtable/README.md74
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)