package frenetic

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Frenetic_kernel.Packets

If we only defined the semantics and were not building a system, a packet would only be a record of headers. However, the runtime needs to apply eval to packets contained in PACKET_IN mesages. For the runtime, packets also carry a payload that is unmodified by eval.

module HeadersValues : sig ... end

A map keyed by header names.

type packet = {
  1. switch : Syntax.switchId;
  2. headers : HeadersValues.t;
  3. payload : Syntax.payload;
}
module PacketSet : Core.Set.S with type Elt.t = packet

Semantics

val eval : packet -> Syntax.policy -> PacketSet.t
val eval_pipes : packet -> Syntax.policy -> (string * packet) list * (string * packet) list * packet list
val size : Syntax.policy -> int
val queries_of_policy : Syntax.policy -> string list
val switches_of_policy : Syntax.policy -> Syntax.switchId list
OCaml

Innovation. Community. Security.