package frenetic

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type t =
  1. | Switch
  2. | Location
  3. | From
  4. | AbstractLoc
  5. | VSwitch
  6. | VPort
  7. | Vlan
  8. | VlanPcp
  9. | Meta0
  10. | Meta1
  11. | Meta2
  12. | Meta3
  13. | Meta4
  14. | EthType
  15. | IPProto
  16. | EthSrc
  17. | EthDst
  18. | IP4Src
  19. | IP4Dst
  20. | TCPSrcPort
  21. | TCPDstPort
  22. | VFabric

Fields 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 := t
type field = t
include Frenetic_netkat.Vlr.HashCmp with type t := t
include Ppx_sexp_conv_lib.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
val hash : t -> Base.Hash.hash_value
module Env : sig ... end

environment, mapping meta field identifiers to static FDD fields, and, for convenience, the initializer and mutability of the identifier

val all : t list

all returns the default field field ordering

val compare : t -> t -> int

compare f1 f2 compares two fields in the current ordering in the usual way.

val equal : t -> t -> bool

of_hv header_value converts a NetKAT header_value pair to a field

val of_string : string -> t

of_string str converts a field string to an abstract field. Throws an exception for unrecognized strings.

val to_string : t -> string

to_string field returns a human-readable representation

val set_order : t list -> unit

set_order field_list sets the field ordering to the given list. Any non-listed fields are given low priority in random order.

val get_order : unit -> t list

get_order returns the current field ordering. All fields are returned.

val auto_order : Frenetic_netkat.Syntax.policy -> unit

auto_order policy heurisitically determines the field ordering given a policy