Fdd.FieldSourceFields are analogous to binary variables in a BDD. These are pretty much the same as matchable fields in OpenFlow. To this list, we add VSwitch, VPort and VFabric for the virtual compiler. These are not actual matchable fields in OpenFlow, but are converted to Switch and Port in the compilation process.
The constructors in type t are listed in the default order, which is acceptable for many NetKAT programs.
This module implements the the HashCmp signature from the Vlr package, so it becomes the "V" in VLR.
include Ppx_sexp_conv_lib.Sexpable.S with type t := tenvironment, mapping meta field identifiers to static FDD fields, and, for convenience, the initializer and mutability of the identifier
compare f1 f2 compares two fields in the current ordering in the usual way.
of_hv header_value converts a NetKAT header_value pair to a field
of_string str converts a field string to an abstract field. Throws an exception for unrecognized strings.
set_order field_list sets the field ordering to the given list. Any non-listed fields are given low priority in random order.
get_order returns the current field ordering. All fields are returned.
auto_order policy heurisitically determines the field ordering given a policy