val event : unit ‑> Frenetic_kernel.OpenFlow.event Async.Deferred.tevent () returns the next event from the network.
val switches : unit ‑> (Frenetic_kernel.OpenFlow.switchId * Frenetic_kernel.OpenFlow.portId list) list Async.Deferred.tcurrent_switches () returns the set of switches currently
connected to this controller.
val port_stats : Frenetic_kernel.OpenFlow.switchId ‑> Frenetic_kernel.OpenFlow.portId ‑> Frenetic_kernel.OpenFlow.portStats Async.Deferred.tport_stats sw pt returns byte and packet counts for switchsw port pt.
val update_global : Frenetic_netkat.Syntax.policy ‑> unit Async.Deferred.tupdate p sets to global policy p.
val update_fdd : Frenetic_netkat.Local_compiler.t ‑> unit Async.Deferred.tupdate_fdd fdd sets the global policy to the one encoded by the FDD.
val packet_out : Frenetic_kernel.OpenFlow.switchId ‑> Frenetic_kernel.OpenFlow.portId option ‑> Frenetic_kernel.OpenFlow.payload ‑> Frenetic_netkat.Syntax.policy list ‑> unit Async.Deferred.tsend_packet_out sw pd p injects packets into the network by
applying p to pd at sw. Optional ingress port helps locate buffer.