1# A flowtable plugin
3Provides a flowtable node to do flow classification, and associate a flow
4context that can be enriched as needed by another node or an external
5application. The objective is to be adaptable so as to be used for any
6statefull use such as load-balancing, firewalling ...
8Compared to the classifier, it stores a flow context, which changes the following:
9- a flow context (which can be updated with external informations)
10- it can offload
11- flows have a lifetime
16 - The flowtable plugin: 0001-Add-flowtable-feature.patch
17 - Example nodeusing the flowtable: 0002-Add-Port-Mirroring-feature.patch
18 - The est scripts I used: 0003-test-scripts.patch
21The tests scripts are used are under ft-test.
22They tests the functionality versus the classifier.
24Apply the patches to vpp:
26git am -3 0001-Add-flowtable-feature.patch
27git am -3 0002-Add-Port-Mirroring-feature.patch
28git am -3 0003-test-scripts.patch
31After that, you shoud be able to build the plugins as part of the make *plugins*
32target as usual:
42In itself, the flowtable only provides a context and an API.
43I added a simple port-mirroring as a test.
45I might add some other test examples if needed.
49### Current status
52- Default behavior is to connect transparently to given interface.
53- Can reroute packets to given node
54- Can receive additional information
55- Can offload sessions
56- Only support IP packets
58I'm still working on this, do not support multithreading, and haven't
59gone through performance tests yet.
62- improve flow statistics, and add a way to get them back at expiration time
63- improve timer management (tcp sm state)
67The objective of this project is to provide a stateful node with flow-level
68API, available for consecutive nodes or external applications.
70### Main contributors
72- Gabriel Ganne - email@example.com
73- Christophe Fontaine - firstname.lastname@example.org