User login

Weekly Report

10

Aug

2016

Further investigation into the packet space library this week. I've found a function which attempts to remove overlapping portions of the header space union and the lazily subtracted portion, possibly emptying the set entirely. This is not perfect, but it detects some common cases, thinking about this problem more I believe it cannot achieved accurately without fully expanding all cases out - which is slow and could exhaust memory. However for my purposes I think I can live with a couple of false dependencies. I might make some minor tweaks to detect more cases, but this depends on how it goes.

I'm also aware of some algorithms to do OpenFlow rule minimisation, this should map directly into simplifying header space and could be used to detect more cases in which the sets become empty. However I doubt the runtime trade-off would be worth it, and I would have to implement that algorithm myself.

I quickly benchmarked the header space wildcard library (which calls to a C library) against a pure python implementation. The results where mixed; with simple operations the pure python approach was faster however with some more complex operations C became faster. I was considering making this pure python as it would allow me to put my conversion to and from OpenFlow match rules in to the object. However for now I don't think it is worth investing the time.

I've implemented the simple algorithm for building a dependency tree as described in CacheFlow. And I've compared the lazy execution against the regular subtraction operation (with the cases I can run without running out of memory) and I have seen the identical results with the lazy minus.

I fired up the packet in and out benchmarks again and run them against our new AT. Brad also updated the HP, and I attempted to encrypted control channel on that again however got no further with it.