Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
type switchId = OpenFlow0x01_Core.switchId
type port =
| Physical of OpenFlow0x01_Core.portId
| Queue of OpenFlow0x01.portId * OpenFlow0x01.queueId
| All
| Here
type lp = switchId * port * Packet.packet
type ptrn = {
ptrnDlSrc : Packet.dlAddr wildcard;
ptrnDlDst : Packet.dlAddr wildcard;
ptrnDlTyp : Packet.dlTyp wildcard;
ptrnDlVlan : Packet.dlVlan wildcard;
ptrnDlVlanPcp : Packet.dlVlanPcp wildcard;
ptrnNwSrc : Packet.nwAddr wildcard;
ptrnNwDst : Packet.nwAddr wildcard;
ptrnNwProto : Packet.nwProto wildcard;
ptrnNwTos : Packet.nwTos wildcard;
ptrnTpSrc : Packet.tpPort wildcard;
ptrnTpDst : Packet.tpPort wildcard;
ptrnInPort : port wildcard;
}
type output = {
outDlSrc : Packet.dlAddr match_modify;
outDlDst : Packet.dlAddr match_modify;
outDlVlan : Packet.dlVlan match_modify;
outDlVlanPcp : Packet.dlVlanPcp match_modify;
outNwSrc : Packet.nwAddr match_modify;
outNwDst : Packet.nwAddr match_modify;
outNwTos : Packet.nwTos match_modify;
outTpSrc : Packet.tpPort match_modify;
outTpDst : Packet.tpPort match_modify;
outPort : port;
}
val id : output
type get_packet_handler = switchId -> port -> Packet.packet -> action
and action_atom =
| SwitchAction of output
| ControllerAction of get_packet_handler
| ControllerQuery of float * get_count_handler
and action = action_atom list
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 tcpSrcPort : Packet.tpPort -> ptrn
val tcpDstPort : Packet.tpPort -> ptrn
val udpSrcPort : Packet.tpPort -> ptrn
val udpDstPort : Packet.tpPort -> ptrn