User login

Weekly Report

17

Aug

2016

Worked on displaying the dependencies between rules visually (as found using the cache flow technique), by plotting them using the python networkx/matplotlib library. I created a simple algorithm for placing nodes (representing rules) to ensure that dependencies are directed top to bottom. The default layouts tried to put equal space between nodes and resulted in a jumbled mess. I used this to verify the results match in some sample cases. I also thought about and added dependencies between tables, in this case a dependency exists between a rule with a goto and those rules which that goto overlaps with in the next table.

I used the visual graph to check the results against examples in the original paper, which I've have also written into tests. It also gave an overview when run against sample sets of Flow Rules as to where and how many dependencies there are. While these dependencies do exist, in some cases they might be condensible into a single table - where as others might require table separation (for example double vlan tagging requires at least 2 tables).

I also worked a bit more on validating TTP patterns, the suggestion for this was to release it as a web validator. As such I've added reverse mappings from TTP Objects to original line numbers in the json which can be printed in the logged messages. I've taken these and added them to a static html page. Along the way I've also found and fixed a couple of minor bugs.