FlowRules.json 11.5 KB
{
  "type": "object",
  "title": "flows",
  "required": [
    "flows"
  ],
  "properties": {
    "flows": {
      "type": "array",
      "xml": {
        "name": "flows",
        "wrapped": true
      },
      "items": {
        "type": "object",
        "title": "flow",
        "required": [
          "id",
          "tableId",
          "appId",
          "groupId",
          "priority",
          "timeout",
          "isPermanent",
          "deviceId"
        ],
        "properties": {
          "id": {
            "type": "string",
            "example": "12103425214920339"
          },
          "tableId": {
            "type": "integer",
            "format": "int32",
            "example": 3
          },
          "appId": {
            "type": "string",
            "example": "org.onosproject.core"
          },
          "groupId": {
            "type": "integer",
            "format": "int64",
            "example": 0
          },
          "priority": {
            "type": "integer",
            "format": "int32",
            "example": 40000
          },
          "timeout": {
            "type": "integer",
            "format": "int32",
            "example": 0
          },
          "isPermanent": {
            "type": "boolean",
            "example": true
          },
          "deviceId": {
            "type": "string",
            "example": "of:0000000000000003"
          },
          "treatment": {
            "type": "object",
            "title": "treatment",
            "required": [
              "instructions",
              "deferred"
            ],
            "properties": {
              "instructions": {
                "type": "array",
                "title": "treatment",
                "required": [
                  "properties",
                  "port"
                ],
                "items": {
                  "type": "object",
                  "title": "instruction",
                  "required": [
                    "type",
                    "port"
                  ],
                  "properties": {
                    "type": {
                      "type": "string",
                      "example": "OUTPUT"
                    },
                    "port": {
                      "type": "string",
                      "example": "CONTROLLER"
                    }
                  }
                }
              },
              "deferred": {
                "type": "array",
                "xml": {
                  "name": "deferred",
                  "wrapped": true
                },
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "selector": {
            "type": "object",
            "title": "selector",
            "required": [
              "criteria"
            ],
            "properties": {
              "criteria": {
                "type": "array",
                "xml": {
                  "name": "criteria",
                  "wrapped": true
                },
                "items": {
                  "type": "object",
                  "title": "criteria",
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "Ethernet field name",
                      "example": "ETH_TYPE"
                    },
                    "ethType": {
                      "type": "int64",
                      "format": "int64",
                      "example": "0x88cc",
                      "description": "Ethernet frame type"
                    },
                    "mac": {
                      "type": "string",
                      "example": "00:00:11:00:00:01"
                    },
                    "port": {
                      "type": "int64",
                      "format": "int64",
                      "example": 1,
                      "description": "Match port"
                    },
                    "metadata": {
                      "type": "Hex16",
                      "format": "Hex16",
                      "example": "0xabcdL",
                      "description": "Metadata passed between tables"
                    },
                    "vlanId": {
                      "type": "uint16",
                      "format": "uint16",
                      "example": "0x1000"
                    },
                    "priority": {
                      "type": "int64",
                      "format": "int64",
                      "example": 1,
                      "description": "VLAN priority."
                    },
                    "ipDscp": {
                      "type": "byte",
                      "format": "byte",
                      "description": "IP DSCP (6 bits in ToS field)"
                    },
                    "ipEcn": {
                      "type": "byte",
                      "format": "byte",
                      "description": "IP ECN (2 bits in ToS field)."
                    },
                    "protocol": {
                      "type": "uint16",
                      "format": "uint16",
                      "example": 1,
                      "description": "IP protocol"
                    },
                    "ip": {
                      "type": "string",
                      "example": "10.1.1.0/24",
                      "description": "IP source address"
                    },
                    "tcpPort": {
                      "type": "integer",
                      "format": "uint16",
                      "example": 1,
                      "description": "TCP source address"
                    },
                    "udpPort": {
                      "type": "uint16",
                      "format": "uint16",
                      "example": 1,
                      "description": "UDP source address"
                    },
                    "sctpPort": {
                      "type": "uint16",
                      "format": "uint16",
                      "example": 1,
                      "description": "SCTP source address"
                    },
                    "icmpType": {
                      "type": "uint16",
                      "format": "uint16",
                      "example": 1,
                      "description": "Internet Control Message Protocol for IPV4 code (RFC0792)"
                    },
                    "icmpCode": {
                      "type": "uint16",
                      "format": "uint16",
                      "example": 1,
                      "description": "Internet Control Message Protocol for IPV4 code (RFC0792)"
                    },
                    "flowLabel": {
                      "type": "Hex16",
                      "format": "Hex16",
                      "example": "0xffffe",
                      "description": "IPv6 Flow Label (RFC 6437)"
                    },
                    "icmpv6Type": {
                      "type": "uint16",
                      "format": "uint16",
                      "example": 1,
                      "description": "Internet Control Message Protocol for IPV6 type (RFC2463)"
                    },
                    "icmpv6Code": {
                      "type": "uint16",
                      "format": "uint16",
                      "example": 1,
                      "description": "Internet Control Message Protocol for IPV6 code (RFC2463)"
                    },
                    "targetAddress": {
                      "type": "String",
                      "example": "10.1.1.0/24",
                      "description": "IPv6 Neighbor discovery target address"
                    },
                    "label": {
                      "type": "int32",
                      "format": "int32",
                      "example": 1,
                      "description": "MPLS label"
                    },
                    "exthdrFlags": {
                      "type": "int64",
                      "format": "int64",
                      "example": 1,
                      "description": "IPv6 extension header pseudo-field"
                    },
                    "lambda": {
                      "type": "int64",
                      "format": "int64",
                      "example": 1,
                      "description": "wavelength abstraction"
                    },
                    "gridType": {
                      "type": "String",
                      "example": "DWDM",
                      "description": "Type of wavelength grid"
                    },
                    "channelSpacing": {
                      "type": "int64",
                      "format": "int64",
                      "example": 100,
                      "description": "Optical channel spacing"
                    },
                    "spacingMultiplier": {
                      "type": "integer",
                      "format": "int64",
                      "example": 4,
                      "description": "Optical channel spacing multiplier"
                    },
                    "slotGranularity": {
                      "type": "int64",
                      "format": "int64",
                      "example": 8
                    },
                    "ochSignalId": {
                      "type": "integer",
                      "format": "int64",
                      "example": 1,
                      "description": "Optical channel signal ID"
                    },
                    "tunnelId": {
                      "type": "int64",
                      "format": "int64",
                      "example": 5,
                      "description": "Tunnel ID"
                    },
                    "ochSignalType": {
                      "type": "int64",
                      "format": "int64",
                      "example": 1,
                      "description": "Optical channel signal type"
                    },
                    "oduSignalId": {
                      "type": "int64",
                      "format": "int64",
                      "example": 1,
                      "description": "ODU (Optical channel Data Unit) signal ID."
                    },
                    "tributaryPortNumber": {
                      "type": "int64",
                      "format": "int64",
                      "example": 11,
                      "description": "OPU (Optical channel Payload Unit) port number."
                    },
                    "tributarySlotLen": {
                      "type": "int64",
                      "format": "int64",
                      "example": 80,
                      "description": "OPU (Optical channel Payload Unit) slot length."
                    },
                    "tributarySlotBitmap": {
                      "type": "array",
                      "title": "tributarySlotBitmap",
                      "description": "OPU (Optical channel Payload Unit) slot bitmap.",
                      "required": [
                        "byte",
                        "port"
                      ],
                      "items": {
                        "type": "byte",
                        "title": "byte",
                        "example": 1
                      }
                    },
                    "oduSignalType": {
                      "type": "int64",
                      "format": "int64",
                      "example": 4,
                      "description": "ODU (Optical channel Data Unit) signal type."
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}