include sig ... endval field_or_cont_of_sexp : Ppx_sexp_conv_lib.Sexp.t ‑> field_or_contval sexp_of_field_or_cont : field_or_cont ‑> Ppx_sexp_conv_lib.Sexp.tmodule Seq : sig ... endmodule Par : sig ... endinclude Frenetic_netkat.Vlr.Result with type t := tAn 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 : tThe 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 : tThe 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.policyto_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.parto_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 listget_queries action returns a list of queries used in actions. May have dupes.
val to_string : t ‑> string