Closed craig-riecke closed 8 years ago
I don't think the code in this patch is very pretty, so any comments are welcome.
Also, I'm cool with putting the adherance flag back in if anyone sees a need for it.
Jane Street has yet again released changes (this time to fieldslib and other syntax extensions) that break the build. Fixes are outlined in https://github.com/ocaml/opam-repository/blob/master/CHANGES.md. I'm applying them to this pull request.
Pinning core to 112.35 doesn't seem to work. Other library dependencies override it.
Putting this on hold until Issue #479 is resolved.
Some fields in OpenFlow are dependent on others being present in the match. For example, EthType must be 0x800 (IP) or 0x806 (ARP) when matching the IPv4 source address. NetKAT compilation currently either throws out all rules where dependencies are not satisfied (adherance=Strict) or leaves them in, only to be installed as Drop All rules by the switch (adherance=Sloppy, the default).
This commit removes the adharance flag altogether and simply fills in any dependencies that are missing. Sometime this means there is more than one Openflow table rule output per FDD node. Examples are provided in examples/issue_463{a,b,c}.kat.