Frenetic adds a transactional layer for several request-response OpenFlow queries like port_stats. The layer had a few problems:
It didn't actually send the request. It just waited for the response that would never show up.
It was trying to send Deferreds over a TCP socket from the openflow process to the Frenetic process. Async would try to deserialize the Deferred message, get really confused, and segfault.
The fix makes sure all Deferreds are determined before sending the results over the wire. /port_stats now works. Need to test other transactional stuff like queries (flow_stats) before merging in.
Frenetic adds a transactional layer for several request-response OpenFlow queries like port_stats. The layer had a few problems:
The fix makes sure all Deferreds are determined before sending the results over the wire. /port_stats now works. Need to test other transactional stuff like queries (flow_stats) before merging in.