package frenetic

  1. Overview
  2. Docs
The Frenetic Programming Language and Runtime System

Install

Dune Dependency

Authors

Maintainers

Sources

5.0.5.tar.gz
md5=baf754df13a759c32f2c86a1b6f328da
sha512=80140900e7009ccab14b25e244fe7edab87d858676f8a4b3799b4fea16825013cf68363fe5faec71dd54ba825bb4ea2f812c2c666390948ab217ffa75d9cbd29

doc/frenetic.kernel/Frenetic_kernel/OpenFlow0x04/index.html

Module Frenetic_kernel.OpenFlow0x04Source

Sourcetype 'a mask = {
  1. m_value : 'a;
  2. m_mask : 'a option;
}
Sourceval sexp_of_mask : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a mask -> Ppx_sexp_conv_lib.Sexp.t
Sourceval mask_of_sexp : (Ppx_sexp_conv_lib.Sexp.t -> 'a) -> Ppx_sexp_conv_lib.Sexp.t -> 'a mask
Sourcetype 'a asyncMask = {
  1. m_master : 'a;
  2. m_slave : 'a;
}
Sourceval sexp_of_asyncMask : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a asyncMask -> Ppx_sexp_conv_lib.Sexp.t
Sourceval asyncMask_of_sexp : (Ppx_sexp_conv_lib.Sexp.t -> 'a) -> Ppx_sexp_conv_lib.Sexp.t -> 'a asyncMask
Sourcetype payload =
  1. | Buffered of int32 * Cstruct.t
    (*

    Buffered (id, buf) is a packet buffered on a switch.

    *)
  2. | NotBuffered of Cstruct.t
Sourceval sexp_of_payload : payload -> Ppx_sexp_conv_lib.Sexp.t
Sourceval payload_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> payload
Sourceval sexp_of_xid : xid -> Ppx_sexp_conv_lib.Sexp.t
Sourceval xid_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> xid
Sourcetype int12 = Packet.int16
Sourceval sexp_of_int12 : int12 -> Ppx_sexp_conv_lib.Sexp.t
Sourceval int12_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> int12
Sourcetype int24 = int32
Sourceval sexp_of_int24 : int24 -> Ppx_sexp_conv_lib.Sexp.t
Sourceval int24_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> int24
Sourcetype int128 = int64 * int64
Sourceval sexp_of_int128 : int128 -> Ppx_sexp_conv_lib.Sexp.t
Sourceval int128_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> int128
Sourceval val_to_mask : 'a1 -> 'a1 mask
Sourceval ip_to_mask : (Packet.nwAddr * int32) -> Packet.nwAddr mask
Sourcetype switchId = int64
Sourceval sexp_of_switchId : switchId -> Ppx_sexp_conv_lib.Sexp.t
Sourceval switchId_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> switchId
Sourcetype groupId = int32
Sourceval sexp_of_groupId : groupId -> Ppx_sexp_conv_lib.Sexp.t
Sourceval groupId_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> groupId
Sourcetype portId = int32
Sourceval sexp_of_portId : portId -> Ppx_sexp_conv_lib.Sexp.t
Sourceval portId_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> portId
Sourcetype tableId = Packet.int8
Sourceval sexp_of_tableId : tableId -> Ppx_sexp_conv_lib.Sexp.t
Sourceval tableId_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> tableId
Sourcetype bufferId = int32
Sourceval sexp_of_bufferId : bufferId -> Ppx_sexp_conv_lib.Sexp.t
Sourceval bufferId_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> bufferId
Sourcetype switchFlags = {
  1. frag_normal : bool;
  2. frag_drop : bool;
  3. frag_reasm : bool;
}
Sourceval sexp_of_switchFlags : switchFlags -> Ppx_sexp_conv_lib.Sexp.t
Sourceval switchFlags_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> switchFlags
Sourcetype switchConfig = {
  1. flags : switchFlags;
  2. miss_send_len : Packet.int16;
}
Sourceval sexp_of_switchConfig : switchConfig -> Ppx_sexp_conv_lib.Sexp.t
Sourceval switchConfig_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> switchConfig
Sourcetype helloFailed =
  1. | HelloIncompatible
  2. | HelloPermError
Sourceval sexp_of_helloFailed : helloFailed -> Ppx_sexp_conv_lib.Sexp.t
Sourceval helloFailed_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> helloFailed
Sourcetype badRequest =
  1. | ReqBadVersion
  2. | ReqBadType
  3. | ReqBadMultipart
  4. | ReqBadExp
  5. | ReqBadExpType
  6. | ReqPermError
  7. | ReqBadLen
  8. | ReqBufferEmpty
  9. | ReqBufferUnknown
  10. | ReqBadTableId
  11. | ReqIsSlave
  12. | ReqBadPort
  13. | ReqBadPacket
  14. | ReqMultipartBufOverflow
Sourceval sexp_of_badRequest : badRequest -> Ppx_sexp_conv_lib.Sexp.t
Sourceval badRequest_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> badRequest
Sourcetype badAction =
  1. | ActBadType
  2. | ActBadLen
  3. | ActBadExp
  4. | ActBadExpType
  5. | ActBadOutPort
  6. | ActBadArg
  7. | ActPermError
  8. | ActTooMany
  9. | ActBadQueue
  10. | ActBadOutGroup
  11. | ActMatchInconsistent
  12. | ActUnsupportedOrder
  13. | ActBadTag
  14. | ActBadSetTyp
  15. | ActBadSetLen
  16. | ActBadSetArg
Sourceval sexp_of_badAction : badAction -> Ppx_sexp_conv_lib.Sexp.t
Sourceval badAction_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> badAction
Sourcetype badInstruction =
  1. | InstUnknownInst
  2. | InstBadTableId
  3. | InstUnsupInst
  4. | InstUnsupMeta
  5. | InstUnsupMetaMask
  6. | InstBadExp
  7. | InstBadExpTyp
  8. | InstBadLen
  9. | InstPermError
Sourceval sexp_of_badInstruction : badInstruction -> Ppx_sexp_conv_lib.Sexp.t
Sourceval badInstruction_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> badInstruction
Sourcetype badMatch =
  1. | MatBadTyp
  2. | MatBadLen
  3. | MatBadTag
  4. | MatBadDlAddrMask
  5. | MatBadNwAddrMask
  6. | MatBadWildcards
  7. | MatBadField
  8. | MatBadValue
  9. | MatBadMask
  10. | MatBadPrereq
  11. | MatDupField
  12. | MatPermError
Sourceval sexp_of_badMatch : badMatch -> Ppx_sexp_conv_lib.Sexp.t
Sourceval badMatch_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> badMatch
Sourcetype flowModFailed =
  1. | FlUnknown
  2. | FlTableFull
  3. | FlBadTableId
  4. | FlOverlap
  5. | FlPermError
  6. | FlBadTimeout
  7. | FlBadCommand
  8. | FlBadFlags
Sourceval sexp_of_flowModFailed : flowModFailed -> Ppx_sexp_conv_lib.Sexp.t
Sourceval flowModFailed_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> flowModFailed
Sourcetype groupModFailed =
  1. | GrGroupExists
  2. | GrInvalidGroup
  3. | GrWeightUnsupported
  4. | GrOutOfGroups
  5. | GrOutOfBuckets
  6. | GrChainingUnsupported
  7. | GrWatchUnsupported
  8. | GrLoop
  9. | GrUnknownGroup
  10. | GrChainedGroup
  11. | GrBadTyp
  12. | GrBadCommand
  13. | GrBadBucket
  14. | GrBadWatch
  15. | GrPermError
Sourceval sexp_of_groupModFailed : groupModFailed -> Ppx_sexp_conv_lib.Sexp.t
Sourceval groupModFailed_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> groupModFailed
Sourcetype portModFailed =
  1. | PoBadPort
  2. | PoBadHwAddr
  3. | PoBadConfig
  4. | PoBadAdvertise
  5. | PoPermError
Sourceval sexp_of_portModFailed : portModFailed -> Ppx_sexp_conv_lib.Sexp.t
Sourceval portModFailed_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> portModFailed
Sourcetype tableModFailed =
  1. | TaBadTable
  2. | TaBadConfig
  3. | TaPermError
Sourceval sexp_of_tableModFailed : tableModFailed -> Ppx_sexp_conv_lib.Sexp.t
Sourceval tableModFailed_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> tableModFailed
Sourcetype queueOpFailed =
  1. | QuBadPort
  2. | QuBadQueue
  3. | QuPermError
Sourceval sexp_of_queueOpFailed : queueOpFailed -> Ppx_sexp_conv_lib.Sexp.t
Sourceval queueOpFailed_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> queueOpFailed
Sourcetype switchConfigFailed =
  1. | ScBadFlags
  2. | ScBadLen
  3. | ScPermError
Sourceval sexp_of_switchConfigFailed : switchConfigFailed -> Ppx_sexp_conv_lib.Sexp.t
Sourceval switchConfigFailed_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> switchConfigFailed
Sourcetype roleReqFailed =
  1. | RoStale
  2. | RoUnsup
  3. | RoBadRole
Sourceval sexp_of_roleReqFailed : roleReqFailed -> Ppx_sexp_conv_lib.Sexp.t
Sourceval roleReqFailed_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> roleReqFailed
Sourcetype meterModFailed =
  1. | MeUnknown
  2. | MeMeterExists
  3. | MeInvalidMeter
  4. | MeUnknownMeter
  5. | MeBadCommand
  6. | MeBadFlags
  7. | MeBadRate
  8. | MeBadBurst
  9. | MeBadBand
  10. | MeBadBandValue
  11. | MeOutOfMeters
  12. | MeOutOfBands
Sourceval sexp_of_meterModFailed : meterModFailed -> Ppx_sexp_conv_lib.Sexp.t
Sourceval meterModFailed_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> meterModFailed
Sourcetype tableFeatFailed =
  1. | TfBadTable
  2. | TfBadMeta
  3. | TfBadType
  4. | TfBadLen
  5. | TfBadArg
  6. | TfPermError
Sourceval sexp_of_tableFeatFailed : tableFeatFailed -> Ppx_sexp_conv_lib.Sexp.t
Sourceval tableFeatFailed_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> tableFeatFailed
Sourcetype experimenterFailed = {
  1. exp_typ : Packet.int16;
  2. exp_id : int32;
}
Sourceval sexp_of_experimenterFailed : experimenterFailed -> Ppx_sexp_conv_lib.Sexp.t
Sourceval experimenterFailed_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> experimenterFailed
Sourcetype errorTyp =
  1. | HelloFailed of helloFailed
  2. | BadRequest of badRequest
  3. | BadAction of badAction
  4. | BadInstruction of badInstruction
  5. | BadMatch of badMatch
  6. | FlowModFailed of flowModFailed
  7. | GroupModFailed of groupModFailed
  8. | PortModFailed of portModFailed
  9. | TableModFailed of tableModFailed
  10. | QueueOpFailed of queueOpFailed
  11. | SwitchConfigFailed of switchConfigFailed
  12. | RoleReqFailed of roleReqFailed
  13. | MeterModFailed of meterModFailed
  14. | TableFeatFailed of tableFeatFailed
  15. | ExperimenterFailed of experimenterFailed
Sourceval sexp_of_errorTyp : errorTyp -> Ppx_sexp_conv_lib.Sexp.t
Sourceval errorTyp_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> errorTyp
Sourcetype length = Packet.int16
Sourceval sexp_of_length : length -> Ppx_sexp_conv_lib.Sexp.t
Sourceval length_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> length
Sourcetype oxmIPv6ExtHdr = {
  1. noext : bool;
  2. esp : bool;
  3. auth : bool;
  4. dest : bool;
  5. frac : bool;
  6. router : bool;
  7. hop : bool;
  8. unrep : bool;
  9. unseq : bool;
}
Sourceval sexp_of_oxmIPv6ExtHdr : oxmIPv6ExtHdr -> Ppx_sexp_conv_lib.Sexp.t
Sourceval oxmIPv6ExtHdr_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> oxmIPv6ExtHdr
Sourcetype oxm =
  1. | OxmInPort of portId
  2. | OxmInPhyPort of portId
  3. | OxmMetadata of int64 mask
  4. | OxmEthType of Packet.int16
  5. | OxmEthDst of Packet.int48 mask
  6. | OxmEthSrc of Packet.int48 mask
  7. | OxmVlanVId of int12 mask
  8. | OxmVlanPcp of Packet.int8
  9. | OxmIPProto of Packet.int8
  10. | OxmIPDscp of Packet.int8
  11. | OxmIPEcn of Packet.int8
  12. | OxmIP4Src of int32 mask
  13. | OxmIP4Dst of int32 mask
  14. | OxmTCPSrc of Packet.int16
  15. | OxmTCPDst of Packet.int16
  16. | OxmARPOp of Packet.int16
  17. | OxmARPSpa of int32 mask
  18. | OxmARPTpa of int32 mask
  19. | OxmARPSha of Packet.int48 mask
  20. | OxmARPTha of Packet.int48 mask
  21. | OxmICMPType of Packet.int8
  22. | OxmICMPCode of Packet.int8
  23. | OxmMPLSLabel of int32
  24. | OxmMPLSTc of Packet.int8
  25. | OxmTunnelId of int64 mask
  26. | OxmUDPSrc of Packet.int16
  27. | OxmUDPDst of Packet.int16
  28. | OxmSCTPSrc of Packet.int16
  29. | OxmSCTPDst of Packet.int16
  30. | OxmIPv6Src of int128 mask
  31. | OxmIPv6Dst of int128 mask
  32. | OxmIPv6FLabel of int32 mask
  33. | OxmICMPv6Type of Packet.int8
  34. | OxmICMPv6Code of Packet.int8
  35. | OxmIPv6NDTarget of int128 mask
  36. | OxmIPv6NDSll of Packet.int48
  37. | OxmIPv6NDTll of Packet.int48
  38. | OxmMPLSBos of bool
  39. | OxmPBBIsid of int24 mask
  40. | OxmIPv6ExtHdr of oxmIPv6ExtHdr mask
Sourceval sexp_of_oxm : oxm -> Ppx_sexp_conv_lib.Sexp.t
Sourceval oxm_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> oxm
Sourcetype oxmMatch = oxm list
Sourceval sexp_of_oxmMatch : oxmMatch -> Ppx_sexp_conv_lib.Sexp.t
Sourceval oxmMatch_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> oxmMatch

Convenient Functions

Sourceval parse_payload : payload -> Packet.packet
Sourceval marshal_payload : int32 option -> Packet.packet -> payload

marshal_payload buf pkt serializes pkt, where buf is an optional buffer ID.

Sourceval match_all : oxmMatch
Sourcetype pseudoPort =
  1. | PhysicalPort of portId
  2. | InPort
    (*

    Send the packet out the input port. This reserved port must be explicitly used in order to send back out of the input port.

    *)
  3. | Table
    (*

    Submit the packet to the first flow table NB: This destination port can only be used in packet-out messages.

    *)
  4. | Normal
    (*

    Process with normal L2/L3 switching.

    *)
  5. | Flood
    (*

    All physical ports in VLAN, except input port and those blocked or link down.

    *)
  6. | AllPorts
    (*

    All physical ports except input port.

    *)
  7. | Controller of Packet.int16
    (*

    Send to controller along with n (max 1024) bytes of the packet

    *)
  8. | Local
    (*

    Local openflow "port".

    *)
  9. | Any
    (*

    Wildcard port used only for flow mod (delete) and flow stats requests. Selects all flows regardless of output port (including flows with no output port).

    *)

A pseudo-port, as described by the ofp_port_no enumeration in Section A.2.1 of the OpenFlow 1.3.0 specification.

Sourceval sexp_of_pseudoPort : pseudoPort -> Ppx_sexp_conv_lib.Sexp.t
Sourceval pseudoPort_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> pseudoPort
Sourcetype actionHdr =
  1. | OutputHdr
  2. | GroupHdr
  3. | PopVlanHdr
  4. | PushVlanHdr
  5. | PopMplsHdr
  6. | PushMplsHdr
  7. | SetFieldHdr
  8. | CopyTtlOutHdr
  9. | CopyTtlInHdr
  10. | SetNwTtlHdr
  11. | DecNwTtlHdr
  12. | PushPbbHdr
  13. | PopPbbHdr
  14. | SetMplsTtlHdr
  15. | DecMplsTtlHdr
  16. | SetQueueHdr
  17. | ExperimenterAHdr of int32
Sourceval sexp_of_actionHdr : actionHdr -> Ppx_sexp_conv_lib.Sexp.t
Sourceval actionHdr_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> actionHdr
Sourcetype action =
  1. | Output of pseudoPort
  2. | Group of groupId
  3. | PopVlan
  4. | PushVlan of Packet.int16
  5. | PopMpls of Packet.int16
  6. | PushMpls of Packet.int16
  7. | SetField of oxm
  8. | CopyTtlOut
  9. | CopyTtlIn
  10. | SetNwTtl of Packet.int8
  11. | DecNwTtl
  12. | PushPbb of Packet.int16
  13. | PopPbb
  14. | SetMplsTtl of Packet.int8
  15. | DecMplsTtl
  16. | SetQueue of int32
  17. | Experimenter of int32
Sourceval sexp_of_action : action -> Ppx_sexp_conv_lib.Sexp.t
Sourceval action_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> action
Sourcetype actionSequence = action list
Sourceval sexp_of_actionSequence : actionSequence -> Ppx_sexp_conv_lib.Sexp.t
Sourceval actionSequence_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> actionSequence
Sourcetype instructionHdr =
  1. | GotoTableHdr
  2. | ApplyActionsHdr
  3. | WriteActionsHdr
  4. | WriteMetadataHdr
  5. | ClearHdr
  6. | MeterHdr
  7. | ExperimenterHdr of int32
Sourceval sexp_of_instructionHdr : instructionHdr -> Ppx_sexp_conv_lib.Sexp.t
Sourceval instructionHdr_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> instructionHdr
Sourcetype instruction =
  1. | GotoTable of tableId
  2. | ApplyActions of actionSequence
  3. | WriteActions of actionSequence
  4. | WriteMetadata of int64 mask
  5. | Clear
  6. | Meter of int32
  7. | Experimenter of int32
Sourceval sexp_of_instruction : instruction -> Ppx_sexp_conv_lib.Sexp.t
Sourceval instruction_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> instruction
Sourcetype bucket = {
  1. bu_weight : Packet.int16;
  2. bu_watch_port : portId option;
  3. bu_watch_group : groupId option;
  4. bu_actions : actionSequence;
}
Sourceval sexp_of_bucket : bucket -> Ppx_sexp_conv_lib.Sexp.t
Sourceval bucket_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> bucket
Sourcetype groupType =
  1. | All
  2. | Select
  3. | Indirect
  4. | FF
Sourceval sexp_of_groupType : groupType -> Ppx_sexp_conv_lib.Sexp.t
Sourceval groupType_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> groupType
Sourcetype groupMod =
  1. | AddGroup of groupType * groupId * bucket list
  2. | DeleteGroup of groupType * groupId
  3. | ModifyGroup of groupType * groupId * bucket list
Sourceval sexp_of_groupMod : groupMod -> Ppx_sexp_conv_lib.Sexp.t
Sourceval groupMod_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> groupMod
Sourcetype timeout =
  1. | Permanent
  2. | ExpiresAfter of Packet.int16
Sourceval sexp_of_timeout : timeout -> Ppx_sexp_conv_lib.Sexp.t
Sourceval timeout_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> timeout
Sourcetype flowModCommand =
  1. | AddFlow
  2. | ModFlow
  3. | ModStrictFlow
  4. | DeleteFlow
  5. | DeleteStrictFlow
Sourceval sexp_of_flowModCommand : flowModCommand -> Ppx_sexp_conv_lib.Sexp.t
Sourceval flowModCommand_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> flowModCommand
Sourcetype flowModFlags = {
  1. fmf_send_flow_rem : bool;
  2. fmf_check_overlap : bool;
  3. fmf_reset_counts : bool;
  4. fmf_no_pkt_counts : bool;
  5. fmf_no_byt_counts : bool;
}
Sourceval sexp_of_flowModFlags : flowModFlags -> Ppx_sexp_conv_lib.Sexp.t
Sourceval flowModFlags_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> flowModFlags
Sourcetype flowMod = {
  1. mfCookie : int64 mask;
  2. mfTable_id : tableId;
  3. mfCommand : flowModCommand;
  4. mfIdle_timeout : timeout;
  5. mfHard_timeout : timeout;
  6. mfPriority : Packet.int16;
  7. mfBuffer_id : bufferId option;
  8. mfOut_port : pseudoPort option;
  9. mfOut_group : groupId option;
  10. mfFlags : flowModFlags;
  11. mfOfp_match : oxmMatch;
  12. mfInstructions : instruction list;
}
Sourceval sexp_of_flowMod : flowMod -> Ppx_sexp_conv_lib.Sexp.t
Sourceval flowMod_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> flowMod
Sourceval add_flow : tbl:tableId -> prio:Packet.int16 -> pat:oxmMatch -> insts:instruction list -> flowMod
Sourceval delete_all_flows : flowMod
Sourceval delete_all_groups : groupMod
Sourcetype packetInReason =
  1. | NoMatch
  2. | ExplicitSend
  3. | InvalidTTL
Sourceval sexp_of_packetInReason : packetInReason -> Ppx_sexp_conv_lib.Sexp.t
Sourceval packetInReason_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> packetInReason
Sourcetype packetIn = {
  1. pi_total_len : Packet.int16;
  2. pi_reason : packetInReason;
  3. pi_table_id : tableId;
  4. pi_ofp_match : oxmMatch;
  5. pi_payload : payload;
}
Sourceval sexp_of_packetIn : packetIn -> Ppx_sexp_conv_lib.Sexp.t
Sourceval packetIn_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> packetIn
Sourcetype flowReason =
  1. | FlowIdleTimeout
  2. | FlowHardTiemout
  3. | FlowDelete
  4. | FlowGroupDelete
Sourceval sexp_of_flowReason : flowReason -> Ppx_sexp_conv_lib.Sexp.t
Sourceval flowReason_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> flowReason
Sourcetype flowRemoved = {
  1. cookie : int64;
  2. priority : Packet.int16;
  3. reason : flowReason;
  4. table_id : tableId;
  5. duration_sec : int32;
  6. duration_nsec : int32;
  7. idle_timeout : timeout;
  8. hard_timeout : timeout;
  9. packet_count : int64;
  10. byte_count : int64;
  11. oxm : oxmMatch;
}
Sourceval sexp_of_flowRemoved : flowRemoved -> Ppx_sexp_conv_lib.Sexp.t
Sourceval flowRemoved_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> flowRemoved
Sourcetype capabilities = {
  1. flow_stats : bool;
  2. table_stats : bool;
  3. port_stats : bool;
  4. group_stats : bool;
  5. ip_reasm : bool;
  6. queue_stats : bool;
  7. port_blocked : bool;
}
Sourceval sexp_of_capabilities : capabilities -> Ppx_sexp_conv_lib.Sexp.t
Sourceval capabilities_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> capabilities
Sourcetype portState = {
  1. blocked : bool;
  2. live : bool;
}
Sourceval sexp_of_portState : portState -> Ppx_sexp_conv_lib.Sexp.t
Sourceval portState_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> portState
Sourcetype portConfig = {
  1. port_down : bool;
  2. no_recv : bool;
  3. no_fwd : bool;
  4. no_packet_in : bool;
}
Sourceval sexp_of_portConfig : portConfig -> Ppx_sexp_conv_lib.Sexp.t
Sourceval portConfig_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> portConfig
Sourcetype portFeatures = {
  1. rate_10mb_hd : bool;
  2. rate_10mb_fd : bool;
  3. rate_100mb_hd : bool;
  4. rate_100mb_fd : bool;
  5. rate_1gb_hd : bool;
  6. rate_1gb_fd : bool;
  7. rate_10gb_fd : bool;
  8. rate_40gb_fd : bool;
  9. rate_100gb_fd : bool;
  10. rate_1tb_fd : bool;
  11. other : bool;
  12. copper : bool;
  13. fiber : bool;
  14. autoneg : bool;
  15. pause : bool;
  16. pause_asym : bool;
}
Sourceval sexp_of_portFeatures : portFeatures -> Ppx_sexp_conv_lib.Sexp.t
Sourceval portFeatures_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> portFeatures
Sourcetype portDesc = {
  1. port_no : portId;
  2. hw_addr : Packet.int48;
  3. name : string;
  4. config : portConfig;
  5. state : portState;
  6. curr : portFeatures;
  7. advertised : portFeatures;
  8. supported : portFeatures;
  9. peer : portFeatures;
  10. curr_speed : int32;
  11. max_speed : int32;
}
Sourceval sexp_of_portDesc : portDesc -> Ppx_sexp_conv_lib.Sexp.t
Sourceval portDesc_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> portDesc
Sourcetype portMod = {
  1. mpPortNo : portId;
  2. mpHw_addr : Packet.int48;
  3. mpConfig : portConfig;
  4. mpMask : int32;
  5. mpAdvertise : portFeatures;
}
Sourceval sexp_of_portMod : portMod -> Ppx_sexp_conv_lib.Sexp.t
Sourceval portMod_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> portMod
Sourcetype portReason =
  1. | PortAdd
  2. | PortDelete
  3. | PortModify
Sourceval sexp_of_portReason : portReason -> Ppx_sexp_conv_lib.Sexp.t
Sourceval portReason_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> portReason
Sourcetype portStatus = {
  1. reason : portReason;
  2. desc : portDesc;
}
Sourceval sexp_of_portStatus : portStatus -> Ppx_sexp_conv_lib.Sexp.t
Sourceval portStatus_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> portStatus
Sourcetype packetOut = {
  1. po_payload : payload;
  2. po_port_id : portId option;
  3. po_actions : actionSequence;
}
Sourceval sexp_of_packetOut : packetOut -> Ppx_sexp_conv_lib.Sexp.t
Sourceval packetOut_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> packetOut
Sourcetype rate = int32
Sourceval sexp_of_rate : rate -> Ppx_sexp_conv_lib.Sexp.t
Sourceval rate_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> rate
Sourcetype burst = int32
Sourceval sexp_of_burst : burst -> Ppx_sexp_conv_lib.Sexp.t
Sourceval burst_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> burst
Sourcetype experimenterId = int32
Sourceval sexp_of_experimenterId : experimenterId -> Ppx_sexp_conv_lib.Sexp.t
Sourceval experimenterId_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> experimenterId
Sourcetype meterBand =
  1. | Drop of rate * burst
  2. | DscpRemark of rate * burst * Packet.int8
  3. | ExpMeter of rate * burst * experimenterId
Sourceval sexp_of_meterBand : meterBand -> Ppx_sexp_conv_lib.Sexp.t
Sourceval meterBand_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> meterBand
Sourcetype meterCommand =
  1. | AddMeter
  2. | ModifyMeter
  3. | DeleteMeter
Sourceval sexp_of_meterCommand : meterCommand -> Ppx_sexp_conv_lib.Sexp.t
Sourceval meterCommand_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> meterCommand
Sourcetype meterFlags = {
  1. kbps : bool;
  2. pktps : bool;
  3. burst : bool;
  4. stats : bool;
}
Sourceval sexp_of_meterFlags : meterFlags -> Ppx_sexp_conv_lib.Sexp.t
Sourceval meterFlags_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> meterFlags
Sourcetype meterMod = {
  1. command : meterCommand;
  2. flags : meterFlags;
  3. meter_id : int32;
  4. bands : meterBand list;
}
Sourceval sexp_of_meterMod : meterMod -> Ppx_sexp_conv_lib.Sexp.t
Sourceval meterMod_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> meterMod
Sourcetype flowRequest = {
  1. fr_table_id : tableId;
  2. fr_out_port : portId;
  3. fr_out_group : portId;
  4. fr_match : oxmMatch;
}
Sourceval sexp_of_flowRequest : flowRequest -> Ppx_sexp_conv_lib.Sexp.t
Sourceval flowRequest_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> flowRequest
Sourcetype queueRequest = {
  1. port_number : portId;
  2. queue_id : int32;
}
Sourceval sexp_of_queueRequest : queueRequest -> Ppx_sexp_conv_lib.Sexp.t
Sourceval queueRequest_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> queueRequest
Sourcetype experimenter = {
  1. exp_id : experimenterId;
  2. exp_type : int32;
}
Sourceval sexp_of_experimenter : experimenter -> Ppx_sexp_conv_lib.Sexp.t
Sourceval experimenter_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> experimenter
Sourcetype tableFeatureProp =
  1. | TfpInstruction of instructionHdr list
  2. | TfpInstructionMiss of instructionHdr list
  3. | TfpNextTable of tableId list
  4. | TfpNextTableMiss of tableId list
  5. | TfpWriteAction of actionHdr list
  6. | TfpWriteActionMiss of actionHdr list
  7. | TfpApplyAction of actionHdr list
  8. | TfpApplyActionMiss of actionHdr list
  9. | TfpMatch of oxm list
  10. | TfpWildcard of oxm list
  11. | TfpWriteSetField of oxm list
  12. | TfpWriteSetFieldMiss of oxm list
  13. | TfpApplySetField of oxm list
  14. | TfpApplySetFieldMiss of oxm list
  15. | TfpExperimenter of experimenter * Cstruct.t
  16. | TfpExperimenterMiss of experimenter * Cstruct.t
Sourceval sexp_of_tableFeatureProp : tableFeatureProp -> Ppx_sexp_conv_lib.Sexp.t
Sourceval tableFeatureProp_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> tableFeatureProp
Sourcetype tableConfig =
  1. | Deprecated
Sourceval sexp_of_tableConfig : tableConfig -> Ppx_sexp_conv_lib.Sexp.t
Sourceval tableConfig_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> tableConfig
Sourcetype tableFeatures = {
  1. length : Packet.int16;
  2. table_id : tableId;
  3. name : string;
  4. metadata_match : int64;
  5. metadata_write : int64;
  6. config : tableConfig;
  7. max_entries : int32;
  8. feature_prop : tableFeatureProp list;
}
Sourceval sexp_of_tableFeatures : tableFeatures -> Ppx_sexp_conv_lib.Sexp.t
Sourceval tableFeatures_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> tableFeatures
Sourcetype multipartType =
  1. | SwitchDescReq
  2. | PortsDescReq
  3. | FlowStatsReq of flowRequest
  4. | AggregFlowStatsReq of flowRequest
  5. | TableStatsReq
  6. | PortStatsReq of portId
  7. | QueueStatsReq of queueRequest
  8. | GroupStatsReq of int32
  9. | GroupDescReq
  10. | GroupFeatReq
  11. | MeterStatsReq of int32
  12. | MeterConfReq of int32
  13. | MeterFeatReq
  14. | TableFeatReq of tableFeatures list option
  15. | ExperimentReq of experimenter
Sourceval sexp_of_multipartType : multipartType -> Ppx_sexp_conv_lib.Sexp.t
Sourceval multipartType_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> multipartType
Sourcetype multipartRequest = {
  1. mpr_type : multipartType;
  2. mpr_flags : bool;
}
Sourceval sexp_of_multipartRequest : multipartRequest -> Ppx_sexp_conv_lib.Sexp.t
Sourceval multipartRequest_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> multipartRequest
Sourceval portDescReq : multipartRequest
Sourcetype switchDesc = {
  1. mfr_desc : string;
  2. hw_desc : string;
  3. sw_desc : string;
  4. serial_num : string;
  5. dp_desc : string;
}
Sourceval sexp_of_switchDesc : switchDesc -> Ppx_sexp_conv_lib.Sexp.t
Sourceval switchDesc_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> switchDesc
Sourcetype flowStats = {
  1. table_id : tableId;
  2. duration_sec : int32;
  3. duration_nsec : int32;
  4. priority : Packet.int16;
  5. idle_timeout : timeout;
  6. hard_timeout : timeout;
  7. flags : flowModFlags;
  8. cookie : int64;
  9. packet_count : int64;
  10. byte_count : int64;
  11. ofp_match : oxmMatch;
  12. instructions : instruction list;
}
Sourceval sexp_of_flowStats : flowStats -> Ppx_sexp_conv_lib.Sexp.t
Sourceval flowStats_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> flowStats
Sourcetype aggregStats = {
  1. packet_count : int64;
  2. byte_count : int64;
  3. flow_count : int32;
}
Sourceval sexp_of_aggregStats : aggregStats -> Ppx_sexp_conv_lib.Sexp.t
Sourceval aggregStats_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> aggregStats
Sourcetype tableStats = {
  1. table_id : tableId;
  2. active_count : int32;
  3. lookup_count : int64;
  4. matched_count : int64;
}
Sourceval sexp_of_tableStats : tableStats -> Ppx_sexp_conv_lib.Sexp.t
Sourceval tableStats_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> tableStats
Sourcetype portStats = {
  1. psPort_no : portId;
  2. rx_packets : int64;
  3. tx_packets : int64;
  4. rx_bytes : int64;
  5. tx_bytes : int64;
  6. rx_dropped : int64;
  7. tx_dropped : int64;
  8. rx_errors : int64;
  9. tx_errors : int64;
  10. rx_frame_err : int64;
  11. rx_over_err : int64;
  12. rx_crc_err : int64;
  13. collisions : int64;
  14. duration_sec : int32;
  15. duration_nsec : int32;
}
Sourceval sexp_of_portStats : portStats -> Ppx_sexp_conv_lib.Sexp.t
Sourceval portStats_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> portStats
Sourcetype queueStats = {
  1. qsPort_no : portId;
  2. queue_id : int32;
  3. tx_bytes : int64;
  4. tx_packets : int64;
  5. tx_errors : int64;
  6. duration_sec : int32;
  7. duration_nsec : int32;
}
Sourceval sexp_of_queueStats : queueStats -> Ppx_sexp_conv_lib.Sexp.t
Sourceval queueStats_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> queueStats
Sourcetype bucketStats = {
  1. packet_count : int64;
  2. byte_count : int64;
}
Sourceval sexp_of_bucketStats : bucketStats -> Ppx_sexp_conv_lib.Sexp.t
Sourceval bucketStats_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> bucketStats
Sourcetype groupStats = {
  1. length : Packet.int16;
  2. group_id : int32;
  3. ref_count : int32;
  4. packet_count : int64;
  5. byte_count : int64;
  6. duration_sec : int32;
  7. duration_nsec : int32;
  8. bucket_stats : bucketStats list;
}
Sourceval sexp_of_groupStats : groupStats -> Ppx_sexp_conv_lib.Sexp.t
Sourceval groupStats_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> groupStats
Sourcetype groupDesc = {
  1. length : Packet.int16;
  2. typ : groupType;
  3. group_id : int32;
  4. bucket : bucket list;
}
Sourceval sexp_of_groupDesc : groupDesc -> Ppx_sexp_conv_lib.Sexp.t
Sourceval groupDesc_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> groupDesc
Sourcetype groupCapabilities = {
  1. select_weight : bool;
  2. select_liveness : bool;
  3. chaining : bool;
  4. chaining_checks : bool;
}
Sourceval sexp_of_groupCapabilities : groupCapabilities -> Ppx_sexp_conv_lib.Sexp.t
Sourceval groupCapabilities_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> groupCapabilities
Sourcetype groupTypeMap = {
  1. all : bool;
  2. select : bool;
  3. indirect : bool;
  4. ff : bool;
}
Sourceval sexp_of_groupTypeMap : groupTypeMap -> Ppx_sexp_conv_lib.Sexp.t
Sourceval groupTypeMap_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> groupTypeMap
Sourcetype actionTypeMap = {
  1. output : bool;
  2. copy_ttl_out : bool;
  3. copy_ttl_in : bool;
  4. set_mpls_ttl : bool;
  5. dec_mpls_ttl : bool;
  6. push_vlan : bool;
  7. pop_vlan : bool;
  8. push_mpls : bool;
  9. pop_mpls : bool;
  10. set_queue : bool;
  11. group : bool;
  12. set_nw_ttl : bool;
  13. dec_nw_ttl : bool;
  14. set_field : bool;
  15. push_pbb : bool;
  16. pop_pbb : bool;
}
Sourceval sexp_of_actionTypeMap : actionTypeMap -> Ppx_sexp_conv_lib.Sexp.t
Sourceval actionTypeMap_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> actionTypeMap
Sourcetype groupFeatures = {
  1. typ : groupTypeMap;
  2. capabilities : groupCapabilities;
  3. max_groups_all : int32;
  4. max_groups_select : int32;
  5. max_groups_indirect : int32;
  6. max_groups_ff : int32;
  7. actions_all : actionTypeMap;
  8. actions_select : actionTypeMap;
  9. actions_indirect : actionTypeMap;
  10. actions_ff : actionTypeMap;
}
Sourceval sexp_of_groupFeatures : groupFeatures -> Ppx_sexp_conv_lib.Sexp.t
Sourceval groupFeatures_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> groupFeatures
Sourcetype meterBandStats = {
  1. packet_band_count : int64;
  2. byte_band_count : int64;
}
Sourceval sexp_of_meterBandStats : meterBandStats -> Ppx_sexp_conv_lib.Sexp.t
Sourceval meterBandStats_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> meterBandStats
Sourcetype meterStats = {
  1. meter_id : int32;
  2. len : Packet.int16;
  3. flow_count : int32;
  4. packet_in_count : int64;
  5. byte_in_count : int64;
  6. duration_sec : int32;
  7. duration_nsec : int32;
  8. band : meterBandStats list;
}
Sourceval sexp_of_meterStats : meterStats -> Ppx_sexp_conv_lib.Sexp.t
Sourceval meterStats_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> meterStats
Sourcetype meterConfig = {
  1. length : length;
  2. flags : meterFlags;
  3. meter_id : int32;
  4. bands : meterBand list;
}
Sourceval sexp_of_meterConfig : meterConfig -> Ppx_sexp_conv_lib.Sexp.t
Sourceval meterConfig_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> meterConfig
Sourcetype meterBandMaps = {
  1. drop : bool;
  2. dscpRemark : bool;
}
Sourceval sexp_of_meterBandMaps : meterBandMaps -> Ppx_sexp_conv_lib.Sexp.t
Sourceval meterBandMaps_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> meterBandMaps
Sourcetype meterFeatures = {
  1. max_meter : int32;
  2. band_typ : meterBandMaps;
  3. capabilities : meterFlags;
  4. max_band : Packet.int8;
  5. max_color : Packet.int8;
}
Sourceval sexp_of_meterFeatures : meterFeatures -> Ppx_sexp_conv_lib.Sexp.t
Sourceval meterFeatures_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> meterFeatures
Sourcetype multipartReplyTyp =
  1. | PortsDescReply of portDesc list
  2. | SwitchDescReply of switchDesc
  3. | FlowStatsReply of flowStats list
  4. | AggregateReply of aggregStats
  5. | TableReply of tableStats list
  6. | TableFeaturesReply of tableFeatures list
  7. | PortStatsReply of portStats list
  8. | QueueStatsReply of queueStats list
  9. | GroupStatsReply of groupStats list
  10. | GroupDescReply of groupDesc list
  11. | GroupFeaturesReply of groupFeatures
  12. | MeterReply of meterStats list
  13. | MeterConfig of meterConfig list
  14. | MeterFeaturesReply of meterFeatures
Sourceval sexp_of_multipartReplyTyp : multipartReplyTyp -> Ppx_sexp_conv_lib.Sexp.t
Sourceval multipartReplyTyp_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> multipartReplyTyp
Sourcetype multipartReply = {
  1. mpreply_typ : multipartReplyTyp;
  2. mpreply_flags : bool;
}
Sourceval sexp_of_multipartReply : multipartReply -> Ppx_sexp_conv_lib.Sexp.t
Sourceval multipartReply_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> multipartReply
Sourcetype tableMod = {
  1. table_id : tableId;
  2. config : tableConfig;
}
Sourceval sexp_of_tableMod : tableMod -> Ppx_sexp_conv_lib.Sexp.t
Sourceval tableMod_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> tableMod
Sourcetype rateQueue =
  1. | Rate of int
  2. | Disabled
Sourceval sexp_of_rateQueue : rateQueue -> Ppx_sexp_conv_lib.Sexp.t
Sourceval rateQueue_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> rateQueue
Sourcetype queueProp =
  1. | MinRateProp of rateQueue
  2. | MaxRateProp of rateQueue
  3. | ExperimenterProp of int32
Sourceval sexp_of_queueProp : queueProp -> Ppx_sexp_conv_lib.Sexp.t
Sourceval queueProp_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> queueProp
Sourcetype queueDesc = {
  1. queue_id : int32;
  2. port : portId;
  3. len : Packet.int16;
  4. properties : queueProp list;
}
Sourceval sexp_of_queueDesc : queueDesc -> Ppx_sexp_conv_lib.Sexp.t
Sourceval queueDesc_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> queueDesc
Sourcetype queueConfReq = {
  1. port : portId;
}
Sourceval sexp_of_queueConfReq : queueConfReq -> Ppx_sexp_conv_lib.Sexp.t
Sourceval queueConfReq_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> queueConfReq
Sourcetype queueConfReply = {
  1. port : portId;
  2. queues : queueDesc list;
}
Sourceval sexp_of_queueConfReply : queueConfReply -> Ppx_sexp_conv_lib.Sexp.t
Sourceval queueConfReply_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> queueConfReply
Sourcetype controllerRole =
  1. | NoChangeRole
  2. | EqualRole
  3. | MasterRole
  4. | SlaveRole
Sourceval sexp_of_controllerRole : controllerRole -> Ppx_sexp_conv_lib.Sexp.t
Sourceval controllerRole_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> controllerRole
Sourcetype roleRequest = {
  1. role : controllerRole;
  2. generation_id : int64;
}
Sourceval sexp_of_roleRequest : roleRequest -> Ppx_sexp_conv_lib.Sexp.t
Sourceval roleRequest_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> roleRequest
Sourcetype supportedList = int list
Sourceval sexp_of_supportedList : supportedList -> Ppx_sexp_conv_lib.Sexp.t
Sourceval supportedList_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> supportedList
Sourcetype element =
  1. | VersionBitMap of supportedList
Sourceval sexp_of_element : element -> Ppx_sexp_conv_lib.Sexp.t
Sourceval element_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> element
Sourcetype helloElement = element list
Sourceval sexp_of_helloElement : helloElement -> Ppx_sexp_conv_lib.Sexp.t
Sourceval helloElement_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> helloElement
Sourcetype packetInReasonMap = {
  1. table_miss : bool;
  2. apply_action : bool;
  3. invalid_ttl : bool;
}
Sourceval sexp_of_packetInReasonMap : packetInReasonMap -> Ppx_sexp_conv_lib.Sexp.t
Sourceval packetInReasonMap_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> packetInReasonMap
Sourcetype portReasonMap = {
  1. add : bool;
  2. delete : bool;
  3. modify : bool;
}
Sourceval sexp_of_portReasonMap : portReasonMap -> Ppx_sexp_conv_lib.Sexp.t
Sourceval portReasonMap_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> portReasonMap
Sourcetype flowReasonMask = {
  1. idle_timeout : bool;
  2. hard_timeout : bool;
  3. delete : bool;
  4. group_delete : bool;
}
Sourceval sexp_of_flowReasonMask : flowReasonMask -> Ppx_sexp_conv_lib.Sexp.t
Sourceval flowReasonMask_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> flowReasonMask
Sourcetype asyncConfig = {
  1. packet_in : packetInReasonMap asyncMask;
  2. port_status : portReasonMap asyncMask;
  3. flow_removed : flowReasonMask asyncMask;
}
Sourceval sexp_of_asyncConfig : asyncConfig -> Ppx_sexp_conv_lib.Sexp.t
Sourceval asyncConfig_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> asyncConfig
Sourcetype msg_code =
  1. | HELLO
  2. | ERROR
  3. | ECHO_REQ
  4. | ECHO_RESP
  5. | VENDOR
  6. | FEATURES_REQ
  7. | FEATURES_RESP
  8. | GET_CONFIG_REQ
  9. | GET_CONFIG_RESP
  10. | SET_CONFIG
  11. | PACKET_IN
  12. | FLOW_REMOVED
  13. | PORT_STATUS
  14. | PACKET_OUT
  15. | FLOW_MOD
  16. | GROUP_MOD
  17. | PORT_MOD
  18. | TABLE_MOD
  19. | MULTIPART_REQ
  20. | MULTIPART_RESP
  21. | BARRIER_REQ
  22. | BARRIER_RESP
  23. | QUEUE_GET_CONFIG_REQ
  24. | QUEUE_GET_CONFIG_RESP
  25. | ROLE_REQ
  26. | ROLE_RESP
  27. | GET_ASYNC_REQ
  28. | GET_ASYNC_REP
  29. | SET_ASYNC
  30. | METER_MOD
Sourceval msg_code_to_int : msg_code -> int
Sourcemodule PortConfig : sig ... end

See the ofp_port_config enumeration in section 7.2.1 of the OpenFlow 1.3.4 specification

Sourcemodule PortFeatures : sig ... end

See the ofp_port_features enumeration in section 7.2.1 of the OpenFlow 1.3.4 specification

Sourcemodule Oxm : sig ... end

Flow Match Fields structure. See the section 7.2.3.2 of the OpenFlow 1.3.4 specification

Sourcemodule PseudoPort : sig ... end
Sourcemodule QueueDesc : sig ... end

Queue Description structure. See the section 7.2.2 of the OpenFlow 1.3.4 specification

Sourcemodule SwitchConfig : sig ... end

Switch Configuration structure. See the section 7.3.2 of the OpenFlow 1.3.4 specification

Sourcemodule OfpMatch : sig ... end

Flow Match structure. See the section 7.2.3.1 of the OpenFlow 1.3.4 specification

Sourcemodule Action : sig ... end

Action structure. See the section 7.2.5 of the OpenFlow 1.3.4 specification

Sourcemodule Bucket : sig ... end

Bucket structure for use in groups. See the section 7.3.4.2 of OpenFlow 1.3.4 specification

Sourcemodule FlowModCommand : sig ... end

Modify Flow message structure. See the section 7.3.4.1 of the OpenFlow 1.3.4 specification

Sourcemodule GroupType : sig ... end

See the ofp_group_type enumeration in section 7.3.4.2 of the OpenFlow 1.3.4 specification

Sourcemodule GroupMod : sig ... end

Modify Group message structure. See the section 7.3.4.2 of the OpenFlow 1.3.4 specification

Sourcemodule PortMod : sig ... end

Modify Port message structure. See the section 7.3.4.3 of the OpenFlow 1.3.4 specification

Sourcemodule MeterMod : sig ... end

Modify Meter message structure. See the section 7.3.4.4 of the OpenFlow 1.3.4 specification

Sourcemodule Instruction : sig ... end

Flow Instruction structure. See the section 7.2.4 of the OpenFlow 1.3.4 specification

Sourcemodule Instructions : sig ... end
Sourcemodule FlowMod : sig ... end

Modify flow message structure. See the section 7.3.4.1 of the OpenFlow 1.3.4 specification

Sourcemodule Capabilities : sig ... end

See the ofp_capabilities enumeration in section 7.3.1 of OpenFlow 1.3.4 specification

Sourcetype switchFeatures = {
  1. datapath_id : int64;
  2. num_buffers : int32;
  3. num_tables : Packet.int8;
  4. aux_id : Packet.int8;
  5. supported_capabilities : capabilities;
}
Sourcemodule SwitchFeatures : sig ... end

Switch Features structure. See the section 7.3.1 of the OpenFlow 1.3.4 specification

Sourcemodule PortState : sig ... end

See the ofp_port_state enumeration in section 7.2.1 of the OpenFlow 1.3.4 specification

Sourcemodule PortDesc : sig ... end

Description of a port structure. See the section 7.3.1 of the OpenFlow 1.3.4 specification

Sourcemodule PortStatus : sig ... end

Port Status structure. See the section 7.4.3 of the OpenFlow 1.3.4 specification

Sourcemodule PacketIn : sig ... end

Packet received by the datapath and sent to the controller structure. See the section 7.4.1 of the OpenFlow 1.3.4 specification

Sourcemodule PacketOut : sig ... end

Packet send out of the datapath structure. See the section 7.3.7 of the OpenFlow 1.3.4 specification

Sourcemodule MeterBand : sig ... end

Meter bands structure. See the section 7.3.4.4 of the OpenFlow 1.3.4 specification

Sourcemodule FlowRemoved : sig ... end

Flow Removed structure. See the section 7.4.2 of the OpenFlow 1.3.4 specification

Sourcemodule FlowRequest : sig ... end

Flow Statistics request structure. See the section 7.3.5.2 of the OpenFlow 1.3.4 specification this structure is the same for indidual and aggregate flow request

Sourcemodule QueueRequest : sig ... end

Queue Statistics request structure. See the section 7.3.5.8 of the OpenFlow 1.3.4 specification

Sourcemodule TableFeatureProp : sig ... end

Table Features property structure. See the section 7.3.5.5.2 of the OpenFlow 1.3.4 specification

Sourcemodule TableFeature : sig ... end

Table Feature structure. See the section 7.3.5.5.1 of the OpenFlow 1.3.4 specification

Sourcemodule MultipartReq : sig ... end

Multipart request message structure. See the section 7.3.5 of the OpenFlow 1.3.4 specification

Sourcemodule GroupStats : sig ... end

Group statistics structure. See the section 7.3.5.9 of the OpenFlow 1.3.4 specification

Sourcemodule SwitchDescriptionReply : sig ... end

Switch Description structure. See the section 7.3.5.1 of the OpenFlow 1.3.4 specification

Sourcemodule FlowStats : sig ... end

Individual Flow Statistics structure. See the section 7.3.5.2 of the OpenFlow 1.3.4 specification

Sourcemodule AggregateStats : sig ... end

Aggregate Flow Statistics structure. See the section 7.3.5.3 of the OpenFlow 1.3.4 specification

Sourcemodule TableStats : sig ... end

Table Statistics structure. See the section 7.3.5.4 of the OpenFlow 1.3.4 specification

Sourcemodule PortStats : sig ... end

Port Statistics structure. See the section 7.3.5.6 of the OpenFlow 1.3.4 specification

Sourcemodule QueueStats : sig ... end

Queue Statistics structure. See the section 7.3.5.8 of the OpenFlow 1.3.4 specification

Sourcemodule GroupDesc : sig ... end

Group Description structure. See the section 7.3.5.10 of the OpenFlow 1.3.4 specification

Sourcemodule GroupFeatures : sig ... end

Group Features structure. See the section 7.3.5.10 of the OpenFlow 1.3.4 specification

Sourcemodule MeterStats : sig ... end

Meter Statistics structure. See the section 7.3.5.12 of the OpenFlow 1.3.4 specification

Sourcemodule MeterConfig : sig ... end

Meter Configuration structure. See the section 7.3.5.13 of the OpenFlow 1.3.4 specification

Sourcemodule MeterFeatures : sig ... end

Meter Features structure. See the section 7.3.5.14 of the OpenFlow 1.3.4 specification

Sourcemodule MultipartReply : sig ... end

Multipart reply message structure. See the section 7.3.5 of the OpenFlow 1.3.4 specification

Sourcemodule TableMod : sig ... end

Modify Table message structure. See the section 7.3.3 of the OpenFlow 1.3.4 specification

Sourcemodule QueueConfReq : sig ... end

Queue Configuration request message structure. See the section 7.3.6 of the OpenFlow 1.3.4 specification

Sourcemodule QueueConfReply : sig ... end

Queue Configuration respond message structure. See the section 7.3.6 of the OpenFlow 1.3.4 specification

Sourcetype error = {
  1. err : errorTyp;
  2. data : Cstruct.t;
}
Sourcemodule Error : sig ... end

Error message structure. See the section 7.4.4 of the OpenFlow 1.3.4 specification

Sourcemodule RoleRequest : sig ... end

Role Request message structure. See the section 7.3.9 of OpenFlow 1.3.4 specification

Sourcemodule Hello : sig ... end

Hello message structure. See the section 7.5.1 of the OpenFlow 1.3.4 specification

Sourcemodule AsyncConfig : sig ... end

Set Asynchronous message structure. See the section 7.3.10 of OpenFlow 1.3.4 specification

Sourcemodule Message : sig ... end
OCaml

Innovation. Community. Security.