Starting hacking 0x04
trivial test
Bug fix.
Unit test
Restore Test0.ml
Unit test for Vendor Message
DescriptionReply Parsing/Marshaling Unit Test
Implemented switch handshake as part of HighLevelSwitch to allow supporting OF versions 1.0 and 1.3. A new module called OFHandshake is responsible for reading the first HELLO message and creating the right Switch object based on the OF version exposed by the switch.
format_flowTable
Merge branch 'master' of https://github.com/frenetic-lang/ocaml-openflow
Starting with failover support.
updated printers to use datatypes from failover branch
moved poetry to the top of the file
factored common flattening into HighLevelSwitch_common
oasis setup
refactor
is this fast failover?
oasis setup
Read this commit message. Bugfix to fail failover.

Fast failover works.  Look at test/Test0.ml, which creates this trivial policy

port 2 -> port 1
port 3 -> port 1
port 1 -> port 2 `failover` port 3

build and run ./Test0.byte

$ make && ./Test0.byte

Start mininet with a 1-switch, 3-host topology:

$ sudo mn --topo=single,3 --controller=remote --switch=user --arp --mac

Start terminals on all three machines:

mininet> xterm h1 h2 h3

On h2 and h3, enable responses to broadcast pings:

h2 # echo 0 | tee /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

h3 # echo 0 | tee /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

On h1, start a broadcast ping:

h1 # ping -b 255.255.255.255

You'll see responses from 10.0.0.2, which is host 2, connected to port 2.
You should not see any responses from 10.0.0.3!

Back in Mininet, kill the link to host 2:

mininet> link s1 h2 down

You'll see that the ping is now getting responses from 10.0.0.3 instead.

If you bring the link back up, however, there is no change. It keeps
receiving from host 3.
rudimentary error handling