include sig ... end
val field_or_cont_of_sexp : Ppx_sexp_conv_lib.Sexp.t ‑> field_or_cont
val sexp_of_field_or_cont : field_or_cont ‑> Ppx_sexp_conv_lib.Sexp.t
module Seq : sig ... end
module Par : sig ... end
include Frenetic_netkat.Vlr.Result with type t := t
An associative and commutative binary operation over the type t
. The
following should hold:
sum a (sum b c)
= sum (sum a b) c
.sum a b
= sum b a
.An associative binary operation over the type t
. The following should
hold:
prod a (prod b c)
= prod (prod a b) c
.prod a (sum b c)
= sum (prod a b) (prod a c)
.val one : t
The identity for the prod
operation. The following should hold:
prod one t
= t
.prod t one
= t
.As an example, if t
where the type bool
and prod
and sum
were &&
and ||
, respectively, then one
should be the value true
.
val zero : t
The identity for the sum
operation. The following should hold:
sum zero t
= t
.sum t zero
= t
.prod zero t
= zero
.prod t zero
= zero
.As an example, if t
where the type bool
and prod
and sum
were &&
and ||
, respectively, then zero
should be the value false
.
negate action
implements negation for the zero
and one
actions. Any
non-zero
action will be mapped to zero
by this function.
val to_policy : t ‑> Frenetic_netkat.Syntax.policy
to_policy a
converts an action to a NetKAT policy. Since it's only modifications, it will have no predicates
val to_sdn : ?group_tbl:Frenetic_kernel.GroupTable0x04.t ‑> Core.Int64.t option ‑> t ‑> Frenetic_kernel.OpenFlow.par
to_sdn switch action
converts a NetKAT action to an SDN action. At the moment this function
assumes that fields are assigned to proper bitwidth integers, and does
no validation along those lines. If the input is derived from a NetKAT
surface syntax program, then this assumption likely holds.
val get_queries : t ‑> string list
get_queries action
returns a list of queries used in actions. May have dupes.
val to_string : t ‑> string