NameDateSize

..13-Mar-2018195

0001-Add-flowtable-feature.patchH A D13-Mar-201854 KiB

0002-Add-Port-Mirroring-feature.patchH A D13-Mar-201827.9 KiB

0003-test-scripts.patchH A D13-Mar-20185.4 KiB

README.mdH A D13-Mar-20182.1 KiB

README.md

1# A flowtable plugin
2
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 ...
7
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
12
13## Build/Install
14
15Patches summary:
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
19
20
21The tests scripts are used are under ft-test.
22They tests the functionality versus the classifier.
23
24Apply the patches to vpp:
25```
26git am -3 0001-Add-flowtable-feature.patch
27git am -3 0002-Add-Port-Mirroring-feature.patch
28git am -3 0003-test-scripts.patch
29```
30
31After that, you shoud be able to build the plugins as part of the make *plugins*
32target as usual:
33```
34make bootstrap
35make build
36make build-vpp-api
37make plugins
38```
39
40## Test
41
42In itself, the flowtable only provides a context and an API.
43I added a simple port-mirroring as a test.
44
45I might add some other test examples if needed.
46
47## Administrative
48
49### Current status
50
51Currently :
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
57
58I'm still working on this, do not support multithreading, and haven't
59gone through performance tests yet.
60
61Planned :
62- improve flow statistics, and add a way to get them back at expiration time
63- improve timer management (tcp sm state)
64
65### Objective
66
67The objective of this project is to provide a stateful node with flow-level
68API, available for consecutive nodes or external applications.
69
70### Main contributors
71
72- Gabriel Ganne - gabriel.ganne@qosmos.com
73- Christophe Fontaine - christophe.fontaine@qosmos.com
74  (https://github.com/christophefontaine/flowtable-plugin)
75