During a flow POST request to the ONOS REST Apis the passed json file can contain different objects in the criteria array . This is an example of a json file with alle the possible criterias. Any combination of one or more of these criteria will work in a POST request.
{ "priority": 400000, "timeout": 0, "isPermanent": true, "deviceId": "of:0000000000000001", "treatment": { "instructions": [ { "type": "OUTPUT", "port": "CONTROLLER" } ] }, "selector": { "criteria": [ { "type": "ETH_TYPE", "ethType": "0x88cc" }, { "type": "ETH_DST", "mac": "00:00:11:00:00:01" }, { "type": "ETH_SRC", "mac": "00:00:11:00:00:01" }, { "type": "IN_PORT", "port": "1" }, { "type": "IN_PHY_PORT", "port": "1" }, { "type": "METADATA", "metadata": "0x1000" }, { "type": "VLAN_VID", "vlanId": "1" }, { "type": "VLAN_PCP", "innerPriority": "1" }, { "type": "INNER_VLAN_VID", "innerVlanId": "1" }, { "type": "INNER_VLAN_PCP", "priority": "1" }, { "type": "IP_DSCP", "ipDscp": 1 }, { "type": "IP_ECN", "ipEcn": 1 }, { "type": "IP_PROTO", "protocol": 1 }, { "type": "IPV4_SRC", "ip": "10.1.1.0/24" }, { "type": "IPV4_DST", "ip": "10.1.1.0/24" }, { "type": "TCP_SRC", "tcpPort": 1 }, { "type": "TCP_DST", "ethType": 1 }, { "type": "UDP_SRC", "tcpPort": 1 }, { "type": "UDP_DST", "ethType": 1 }, { "type": "SCTP_SRC", "sctpPort": 1 }, { "type": "SCTP_DST", "sctpPort": 1 }, { "type": "ICMPV4_TYPE", "icmpType": "1" }, { "type": "ICMPV4_CODE", "icmpCode": 1 }, { "type": "IPV6_SRC", "ip": "10.1.1.0/24" }, { "type": "IPV6_DST", "ip": "10.1.1.0/24" }, { "type": "IPV6_FLABEL", "flowlabel": 1 }, { "type": "FLOW_LABEL", "flowLabel": "0xffffe" }, { "type": "ICMPV6_TYPE", "icmpv6Type": 1 }, { "type": "ICMPV6_CODE", "icmpv6Code": 1 }, { "type": "IPV6_ND_TARGET", "targetAddress": 10.1.1.0/24 }, { "type": "IPV6_ND_SLL", "mac": "00:00:11:00:00:01" }, { "type": "IPV6_ND_TLL", "mac": "00:00:11:00:00:01" }, { "type": "MPLS_LABEL", "label": 1 }, { "type": "IPV6_EXTHDR", "exthdrFlags": 1 }, { "type": "OCH_SIGID", "lambda": 1 }, { "type": "GRID_TYPE", "gridType": DWDM }, { "type": "CHANNEL_SPACING", "channelSpacing": 100 }, { "type": "SPACING_MULIPLIER", "spacingMultiplier": 4 }, { "type": "SLOT_GRANULARITY", "slotGranularity": 8 }, { "type": "OCH_SIGID", "ochSignalId": 1 }, { "type": "TUNNEL_ID", "tunnelId": 5 }, { "type": "OCH_SIGTYPE", "ochSignalType": 1 }, { "type": "ODU_SIGID", "oduSignalId": 1 "tributaryPortNumber": 11 "tributarySlotBitmap": bitmap "type": "ETH_TYPE", "tributarySlotLen": 1 }, { "type": "ODU_SIGTYPE", "oduSignalType": 4 }, ] } }
Description of the fields:
ETH_TYPE: ethernet frame type format: int64
ETH_DST: mac address format: string
ETH_SRC: mac address format: string
IN_PORT : match port format: int64
IN_PHY_PORT : match port format: int64
METADATA: metadata passed between tables format: Hex16
VLAN_VID: vlanId format: uint16
VLAN_PCP: Vlan priority format: int64
INNER_VLAN_VID: vlanId format: uint16
INNER_VLAN_PCP: Vlan priority format: int64
IP_DSCP: IP DSCP (6 bits in ToS field) format: byte
IP_ECN: IP ECN (2 bits in ToS field). format: byte
IP_PROTO: Ip protocol format: uint16
IPV4_SRC: source ip format: string
IPV4_SRC: destination ip format: string
TCP_SRC: TCP source address format: uint16
TCP_DST: TCP destination address format: uint16
UDP_SRC: UDP source address format: uint16
UDP_DST: UDP destination address format: uint16
SCTP_SRC: SCTP source address format: uint16
SCTP_DST: SCTP destination address format: uint16
ICMPV4_TYPE: Internet Control Message Protocol for IPV4 type (RFC0792) format: uint16
ICMPV4_CODE: Internet Control Message Protocol for IPV4 code (RFC0792) format: uint16
IPV6_SRC: source ipv6 format: string
IPV6_SRC: destination ipv6 format: string
IPV6_FLABEL: IPv6 Flow Label (RFC 6437) format: Hex16
ICMPV6_TYPE: Internet Control Message Protocol for IPV6 type (RFC2463) format: uint16
ICMPV6_CODE: Internet Control Message Protocol for IPV6 code (RFC2463) format: uint16
IPV6_ND_TARGET: IPv6 Neighbor discovery target address format: string
IPV6_ND_SLL: IPv6 Neighbor discovery mac address format: string
IPV6_ND_TTL: IPv6 Neighbor discovery ttl mac address format: string
MPLS_LABEL: MPLS label format: int32
IPV6_EXTHDR: IPv6 extension header pseudo-field format: int64
OCH_SIGID: wavelength abstraction format: int64
GRID_TYPE: Type of wavelength grid format: string
CHANNEL_SPACING: Optical channel spacing format: int64
SPACING_MULIPLIER: Optical channel spacing multiplier format: int64
OCH_SIGID: Optical channel signal ID format: int64
TUNNEL_ID: Tunnel ID format: int64
OCH_SIGID: Optical channel signal type format: int64
ODU_SIGID: ODU (Optical channel Data Unit) signal ID. format: int64
tributaryPortNumber: OPU (Optical channel Payload Unit) port number. format: int64
tributarySlotBitmap: OPU (Optical channel Payload Unit) slot length. format: int64
tributarySlotLen: OPU (Optical channel Payload Unit) slot bitmap. format: array of bytes
ODU_SIGTYPE: ODU (Optical channel Data Unit) signal type. format: int64