| /* |
| * Copyright 2017-present Open Networking Laboratory |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.onosproject.flowapi; |
| |
| /** |
| * Representation of BgpFlow container having custom rules. |
| */ |
| public interface ExtFlowTypes { |
| |
| /** |
| * Bgp types. |
| */ |
| public enum ExtType { |
| |
| /** Extended flow rule key. */ |
| EXT_FLOW_RULE_KEY(0), |
| |
| /** IPv4 destination address. */ |
| IPV4_DST_PFX(1), |
| |
| /** IPv4 source address. */ |
| IPV4_SRC_PFX(2), |
| |
| /** IP protocol list. */ |
| IP_PROTO_LIST(3), |
| |
| /** Input port list. */ |
| IN_PORT_LIST(4), |
| |
| /** Destination port list. */ |
| DST_PORT_LIST(5), |
| |
| /** Source port list. */ |
| SRC_PORT_LIST(6), |
| |
| /** ICMP type list. */ |
| ICMP_TYPE_LIST(7), |
| |
| /** ICMP code list. */ |
| ICMP_CODE_LIST(8), |
| |
| /** TCP flag list. */ |
| TCP_FLAG_LIST(9), |
| |
| /** Packet length list. */ |
| PACKET_LENGTH_LIST(10), |
| |
| /** DSCP Value component. */ |
| DSCP_VALUE_LIST(11), |
| |
| /** Fragment list. */ |
| FRAGMENT_LIST(12), |
| |
| /** Wide community flags. */ |
| WIDE_COMM_FLAGS(13), |
| |
| /** Wide community hop count. */ |
| WIDE_COMM_HOP_COUNT(14), |
| |
| /** Wide community community attribute. */ |
| WIDE_COMM_COMMUNITY(15), |
| |
| /** Wide community context AS. */ |
| WIDE_COMM_CONTEXT_AS(16), |
| |
| /** Wide community local AS. */ |
| WIDE_COMM_LOCAL_AS(17), |
| |
| /** Wide community target prefixes. */ |
| WIDE_COMM_TARGET(18), |
| |
| /** Wide community extended target prefixes. */ |
| WIDE_COMM_EXT_TARGET(19), |
| |
| /** Wide community parameter. */ |
| WIDE_COMM_PARAMETER(20), |
| |
| /** Traffic filtering actions. */ |
| |
| TRAFFIC_RATE(0x8006), |
| TRAFFIC_ACTION(0x8007), |
| TRAFFIC_REDIRECT(0x8008), |
| TRAFFIC_MARKING(0x8009); |
| |
| private int type; |
| |
| /** |
| * Creates a new type. |
| * |
| * @param type type code |
| */ |
| ExtType(int type) { |
| this.type = type; |
| } |
| |
| /** |
| * Returns the type object for this type code. |
| * |
| * @return ExtType object |
| */ |
| public int type() { |
| return (type); |
| } |
| } |
| |
| ExtType type(); |
| } |