Module Frenetic_netkat.Fdd.Action

type field_or_cont =
| F of Field.t
| K
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
type t = Par.t
include sig ... end
val t_of_sexp : Ppx_sexp_conv_lib.Sexp.t ‑> t
val sexp_of_t : t ‑> Ppx_sexp_conv_lib.Sexp.t
include Vlr.Result with type t := t
val equal : t ‑> t ‑> Ppx_deriving_runtime.bool
val t_of_sexp : Ppx_sexp_conv_lib.Sexp.t ‑> t
val sexp_of_t : t ‑> Ppx_sexp_conv_lib.Sexp.t
val compare : t ‑> t ‑> int
val hash_fold_t : Ppx_hash_lib.Std.Hash.state ‑> t ‑> Ppx_hash_lib.Std.Hash.state
val hash : t ‑> Ppx_hash_lib.Std.Hash.hash_value
val to_string : t ‑> string
val sum : t ‑> t ‑> t
val prod : t ‑> t ‑> t
val one : t
val zero : t
val one : t

one returns identify action, which is a modification representing "no modifications"

val zero : t

zero returns empty action, which consistently with OpenFlow, means "drop"

val negate : t ‑> t

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 ‑> Syntax.policy

to_policy a converts an action to a NetKAT policy. Since it's only modifications, it will have no predicates

val demod : Pattern.t ‑> t ‑> t

demod pattern removes any patterns from actions

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 pipes : t ‑> Core.String.Set.t

get_pipes action returns a set of pipes used in actions

val queries : t ‑> string list

queries action returns a de-duped set of queries referenced in action

val to_string : t ‑> string