package frenetic

  1. Overview
  2. Docs
type !'a wildcard =
  1. | WildcardExact of 'a
  2. | WildcardAll
  3. | WildcardNone
type port =
  1. | Physical of OpenFlow0x01_Core.portId
  2. | Queue of OpenFlow0x01.portId * OpenFlow0x01.queueId
  3. | All
  4. | Here
type ptrn = {
  1. ptrnDlSrc : Packet.dlAddr wildcard;
  2. ptrnDlDst : Packet.dlAddr wildcard;
  3. ptrnDlTyp : Packet.dlTyp wildcard;
  4. ptrnDlVlan : Packet.dlVlan wildcard;
  5. ptrnDlVlanPcp : Packet.dlVlanPcp wildcard;
  6. ptrnNwSrc : Packet.nwAddr wildcard;
  7. ptrnNwDst : Packet.nwAddr wildcard;
  8. ptrnNwProto : Packet.nwProto wildcard;
  9. ptrnNwTos : Packet.nwTos wildcard;
  10. ptrnTpSrc : Packet.tpPort wildcard;
  11. ptrnTpDst : Packet.tpPort wildcard;
  12. ptrnInPort : port wildcard;
}
type !'a match_modify = ('a * 'a) option
val id : output
type get_packet_handler = switchId -> port -> Packet.packet -> action
and get_count_handler = Int64.t -> Int64.t -> unit
and action_atom =
  1. | SwitchAction of output
  2. | ControllerAction of get_packet_handler
  3. | ControllerQuery of float * get_count_handler
and action = action_atom list
type pred =
  1. | Hdr of ptrn
  2. | OnSwitch of switchId
  3. | Or of pred * pred
  4. | And of pred * pred
  5. | Not of pred
  6. | Everything
  7. | Nothing
type switchEvent =
  1. | SwitchUp of switchId * OpenFlow0x01.SwitchFeatures.t
  2. | SwitchDown of switchId
type pol =
  1. | HandleSwitchEvent of switchEvent -> unit
  2. | Action of action
  3. | ActionChoice of action list
  4. | Filter of pred
  5. | Union of pol * pol
  6. | Seq of pol * pol
  7. | ITE of pred * pol * pol
val all : ptrn
val empty : ptrn
val dlSrc : Packet.dlAddr -> ptrn
val dlDst : Packet.dlAddr -> ptrn
val dlTyp : Packet.dlTyp -> ptrn
val dlVlan : Packet.dlVlan -> ptrn
val dlVlanPcp : Packet.dlVlanPcp -> ptrn
val ipSrc : Packet.nwAddr -> ptrn
val ipDst : Packet.nwAddr -> ptrn
val ipProto : Packet.nwProto -> ptrn
val ipTos : Packet.nwTos -> ptrn
val inPort : port -> ptrn
val tcpSrcPort : Packet.tpPort -> ptrn
val tcpDstPort : Packet.tpPort -> ptrn
val udpSrcPort : Packet.tpPort -> ptrn
val udpDstPort : Packet.tpPort -> ptrn