Scenario on which the bug is reproduced is the following one:
1) Start mininet test network (default)
2) Start SFC from clean (unprovisioned) state
3) Provision SFs, SFFs, SFPs, RSPs (all default, using scripts in sfc-test/sfcofl2_demo)
4) Check that RSPs are added to operational DS (http://localhost:8181/restconf/operational/rendered-service-path:rendered-service-paths/)
5) Check that flows are added to the switches (e.g. 16 flows in SFF1)
odluser@colorado:~$ sudo ovs-ofctl -O OpenFlow13 dump-flows sff1 | grep -v "OFPST_FLOW reply" | wc -l
16
6) Stop Karaf, then start again
Now it can be observed than:
a) RSPs are lost from the operational DS
b) A consequence from the former. If the same RSPs that were used before are repopulated, they are accepted and the switches are repopulated, partially overwriting the previous configuration. On this example, sff1 ends with 26 flows, with repeated entries for the RSPs. If at this point the RSPs are deleted, the flow tables are partially deleted, ending with an inconsistent - corrupted state (10 flows at this step)