blob: 84f9158d2134cc9dc6b5689e8f7c73436e77dd65 [file] [log] [blame]
// Copyright 2013-2017, Big Switch Networks, Inc.
//
// LoxiGen is licensed under the Eclipse Public License,
// version 1.0 (EPL), with the following special exception:
//
// LOXI Exception
//
// As a special exception to the terms of the EPL, you may
// distribute libraries generated by LoxiGen (LoxiGen Libraries)
// under the terms of your choice, provided that copyright and
// licensing notices generated by LoxiGen are not altered or removed
// from the LoxiGen Libraries and the notice provided below is (i)
// included in the LoxiGen Libraries, if distributed in source code
// form and (ii) included in any documentation for the LoxiGen
// Libraries, if distributed in binary form.
//
// Notice: "Copyright 2013, Big Switch Networks, Inc.
// This library was generated by the LoxiGen Compiler."
//
// You may not use this file except in compliance with the EPL or
// LOXI Exception. You may obtain a copy of the EPL at:
//
// http://www.eclipse.org/legal/epl-v10.html
//
// 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 EPL for the specific language
// governing permissions and limitations under the EPL.
#version 4
#version 5
#version 6
struct of_bsn_tlv_port : of_bsn_tlv {
uint16_t type == 0;
uint16_t length;
of_port_no_t value;
};
struct of_bsn_tlv_mac : of_bsn_tlv {
uint16_t type == 1;
uint16_t length;
of_mac_addr_t value;
};
struct of_bsn_tlv_rx_packets : of_bsn_tlv {
uint16_t type == 2;
uint16_t length;
uint64_t value;
};
struct of_bsn_tlv_tx_packets : of_bsn_tlv {
uint16_t type == 3;
uint16_t length;
uint64_t value;
};
struct of_bsn_tlv_ipv4 : of_bsn_tlv {
uint16_t type == 4;
uint16_t length;
of_ipv4_t value;
};
struct of_bsn_tlv_idle_time : of_bsn_tlv {
uint16_t type == 5;
uint16_t length;
uint64_t value; /* Milliseconds */
};
struct of_bsn_tlv_vlan_vid : of_bsn_tlv {
uint16_t type == 6;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_idle_notification : of_bsn_tlv {
uint16_t type == 7;
uint16_t length;
};
struct of_bsn_tlv_idle_timeout : of_bsn_tlv {
uint16_t type == 8;
uint16_t length;
uint32_t value; /* Milliseconds */
};
struct of_bsn_tlv_unicast_query_timeout : of_bsn_tlv {
uint16_t type == 9;
uint16_t length;
uint32_t value; /* Milliseconds */
};
struct of_bsn_tlv_broadcast_query_timeout : of_bsn_tlv {
uint16_t type == 10;
uint16_t length;
uint32_t value; /* Milliseconds */
};
struct of_bsn_tlv_request_packets : of_bsn_tlv {
uint16_t type == 11;
uint16_t length;
uint64_t value;
};
struct of_bsn_tlv_reply_packets : of_bsn_tlv {
uint16_t type == 12;
uint16_t length;
uint64_t value;
};
struct of_bsn_tlv_miss_packets : of_bsn_tlv {
uint16_t type == 13;
uint16_t length;
uint64_t value;
};
struct of_bsn_tlv_circuit_id : of_bsn_tlv {
uint16_t type == 14;
uint16_t length;
of_octets_t value;
};
struct of_bsn_tlv_udf_id : of_bsn_tlv {
uint16_t type == 15;
uint16_t length;
uint16_t value;
};
enum ofp_bsn_udf_anchor(wire_type=uint16_t) {
OFP_BSN_UDF_ANCHOR_PACKET_START = 0,
OFP_BSN_UDF_ANCHOR_L3_HEADER_START = 1,
OFP_BSN_UDF_ANCHOR_L4_HEADER_START = 2,
};
struct of_bsn_tlv_udf_anchor : of_bsn_tlv {
uint16_t type == 16;
uint16_t length;
enum ofp_bsn_udf_anchor value;
};
struct of_bsn_tlv_udf_offset : of_bsn_tlv {
uint16_t type == 17;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_udf_length : of_bsn_tlv {
uint16_t type == 18;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_vrf : of_bsn_tlv {
uint16_t type == 19;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_queue_id : of_bsn_tlv {
uint16_t type == 20;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_queue_weight : of_bsn_tlv {
uint16_t type == 21;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_crc_enabled : of_bsn_tlv {
uint16_t type == 22;
uint16_t length;
uint8_t value;
};
struct of_bsn_tlv_external_ip : of_bsn_tlv {
uint16_t type == 23;
uint16_t length;
of_ipv4_t value;
};
struct of_bsn_tlv_external_mac : of_bsn_tlv {
uint16_t type == 24;
uint16_t length;
of_mac_addr_t value;
};
struct of_bsn_tlv_external_netmask : of_bsn_tlv {
uint16_t type == 25;
uint16_t length;
of_ipv4_t value;
};
struct of_bsn_tlv_external_gateway_ip : of_bsn_tlv {
uint16_t type == 26;
uint16_t length;
of_ipv4_t value;
};
struct of_bsn_tlv_internal_mac : of_bsn_tlv {
uint16_t type == 27;
uint16_t length;
of_mac_addr_t value;
};
struct of_bsn_tlv_internal_gateway_mac : of_bsn_tlv {
uint16_t type == 28;
uint16_t length;
of_mac_addr_t value;
};
struct of_bsn_tlv_external_gateway_mac : of_bsn_tlv {
uint16_t type == 29;
uint16_t length;
of_mac_addr_t value;
};
struct of_bsn_tlv_sampling_rate : of_bsn_tlv {
uint16_t type == 30;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_header_size : of_bsn_tlv {
uint16_t type == 31;
uint16_t length;
uint32_t value; /* bytes */
};
struct of_bsn_tlv_eth_src : of_bsn_tlv {
uint16_t type == 32;
uint16_t length;
of_mac_addr_t value;
};
struct of_bsn_tlv_eth_dst : of_bsn_tlv {
uint16_t type == 33;
uint16_t length;
of_mac_addr_t value;
};
struct of_bsn_tlv_ipv4_src : of_bsn_tlv {
uint16_t type == 34;
uint16_t length;
of_ipv4_t value;
};
struct of_bsn_tlv_ipv4_dst : of_bsn_tlv {
uint16_t type == 35;
uint16_t length;
of_ipv4_t value;
};
struct of_bsn_tlv_udp_src : of_bsn_tlv {
uint16_t type == 36;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_udp_dst : of_bsn_tlv {
uint16_t type == 37;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_sub_agent_id : of_bsn_tlv {
uint16_t type == 38;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_tx_bytes : of_bsn_tlv {
uint16_t type == 39;
uint16_t length;
uint64_t value;
};
struct of_bsn_tlv_actor_system_priority: of_bsn_tlv {
uint16_t type == 40;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_actor_system_mac: of_bsn_tlv {
uint16_t type == 41;
uint16_t length;
of_mac_addr_t value;
};
struct of_bsn_tlv_actor_port_priority: of_bsn_tlv {
uint16_t type == 42;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_actor_port_num: of_bsn_tlv {
uint16_t type == 43;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_actor_key: of_bsn_tlv {
uint16_t type == 44;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_convergence_status: of_bsn_tlv {
uint16_t type == 45;
uint16_t length;
uint8_t value;
};
struct of_bsn_tlv_partner_system_priority: of_bsn_tlv {
uint16_t type == 47;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_partner_system_mac: of_bsn_tlv {
uint16_t type == 48;
uint16_t length;
of_mac_addr_t value;
};
struct of_bsn_tlv_partner_port_priority: of_bsn_tlv {
uint16_t type == 49;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_partner_port_num: of_bsn_tlv {
uint16_t type == 50;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_partner_key: of_bsn_tlv {
uint16_t type == 51;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_name : of_bsn_tlv {
uint16_t type == 52;
uint16_t length;
of_octets_t value; /* UTF-8 encoded. Not null terminated. */
};
enum ofp_bsn_lacp_state(wire_type=uint8_t, bitmask=True) {
OFP_BSN_LACP_STATE_ACTIVITY = 0x01,
OFP_BSN_LACP_STATE_TIMEOUT = 0x02,
OFP_BSN_LACP_STATE_AGGREGATION = 0x04,
OFP_BSN_LACP_STATE_SYNCHRONIZATION = 0x08,
OFP_BSN_LACP_STATE_COLLECTING = 0x10,
OFP_BSN_LACP_STATE_DISTRIBUTING = 0x20,
OFP_BSN_LACP_STATE_DEFAULTED = 0x40,
OFP_BSN_LACP_STATE_EXPIRED = 0x80,
};
struct of_bsn_tlv_actor_state: of_bsn_tlv {
uint16_t type == 53;
uint16_t length;
enum ofp_bsn_lacp_state value;
};
struct of_bsn_tlv_partner_state: of_bsn_tlv {
uint16_t type == 54;
uint16_t length;
enum ofp_bsn_lacp_state value;
};
struct of_bsn_tlv_data : of_bsn_tlv {
uint16_t type == 55;
uint16_t length;
of_octets_t value;
};
struct of_bsn_tlv_mac_mask : of_bsn_tlv {
uint16_t type == 56;
uint16_t length;
of_mac_addr_t value;
};
struct of_bsn_tlv_priority : of_bsn_tlv {
uint16_t type == 57;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_interval : of_bsn_tlv {
uint16_t type == 58;
uint16_t length;
uint32_t value; /* Milliseconds */
};
/* A reference to an entry in another gentable */
struct of_bsn_tlv_reference : of_bsn_tlv {
uint16_t type == 59;
uint16_t length;
uint16_t table_id;
list(of_bsn_tlv_t) key;
};
struct of_bsn_tlv_ipv4_netmask : of_bsn_tlv {
uint16_t type == 60;
uint16_t length;
of_ipv4_t value;
};
struct of_bsn_tlv_mpls_label : of_bsn_tlv {
uint16_t type == 61;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_mpls_control_word : of_bsn_tlv {
uint16_t type == 62;
uint16_t length;
uint8_t value;
};
struct of_bsn_tlv_mpls_sequenced : of_bsn_tlv {
uint16_t type == 63;
uint16_t length;
uint8_t value;
};
struct of_bsn_tlv_bucket : of_bsn_tlv {
uint16_t type == 64;
uint16_t length;
list(of_bsn_tlv_t) value;
};
struct of_bsn_tlv_tcp_src : of_bsn_tlv {
uint16_t type == 65;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_tcp_dst : of_bsn_tlv {
uint16_t type == 66;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_ip_proto : of_bsn_tlv {
uint16_t type == 67;
uint16_t length;
uint8_t value;
};
struct of_bsn_tlv_icmp_type : of_bsn_tlv {
uint16_t type == 68;
uint16_t length;
uint8_t value;
};
struct of_bsn_tlv_icmp_code : of_bsn_tlv {
uint16_t type == 69;
uint16_t length;
uint8_t value;
};
struct of_bsn_tlv_icmp_id : of_bsn_tlv {
uint16_t type == 70;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_rx_bytes : of_bsn_tlv {
uint16_t type == 71;
uint16_t length;
uint64_t value;
};
struct of_bsn_tlv_vlan_pcp : of_bsn_tlv {
uint16_t type == 72;
uint16_t length;
uint8_t value;
};
struct of_bsn_tlv_strip_vlan_on_egress : of_bsn_tlv {
uint16_t type == 73;
uint16_t length;
};
struct of_bsn_tlv_set_loopback_mode: of_bsn_tlv {
uint16_t type == 74;
uint16_t length;
};
struct of_bsn_tlv_strip_mpls_l2_on_ingress : of_bsn_tlv {
uint16_t type == 75;
uint16_t length;
};
struct of_bsn_tlv_strip_mpls_l3_on_ingress : of_bsn_tlv {
uint16_t type == 76;
uint16_t length;
};
struct of_bsn_tlv_vlan_vid_mask : of_bsn_tlv {
uint16_t type == 77;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_igmp_snooping : of_bsn_tlv {
uint16_t type == 78;
uint16_t length;
};
struct of_bsn_tlv_l2_multicast_lookup : of_bsn_tlv {
uint16_t type == 79;
uint16_t length;
};
struct of_bsn_tlv_generation_id : of_bsn_tlv {
uint16_t type == 80;
uint16_t length;
uint64_t value;
};
enum ofp_bsn_anchor(wire_type=uint16_t) {
OFP_BSN_ANCHOR_PACKET_START = 0,
OFP_BSN_ANCHOR_L3_HEADER_START = 1,
OFP_BSN_ANCHOR_L4_HEADER_START = 2,
OFP_BSN_ANCHOR_L4_PAYLOAD_START = 3,
};
struct of_bsn_tlv_anchor : of_bsn_tlv {
uint16_t type == 81;
uint16_t length;
enum ofp_bsn_anchor value;
};
struct of_bsn_tlv_offset : of_bsn_tlv {
uint16_t type == 82;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_negate : of_bsn_tlv {
uint16_t type == 83;
uint16_t length;
};
struct of_bsn_tlv_ipv6 : of_bsn_tlv {
uint16_t type == 84;
uint16_t length;
of_ipv6_t value;
};
enum ofp_bsn_decap(wire_type=uint16_t) {
OFP_BSN_DECAP_VXLAN = 0,
OFP_BSN_DECAP_ERSPAN = 1,
OFP_BSN_DECAP_L2_GRE = 2,
OFP_BSN_DECAP_NVGRE = 3,
OFP_BSN_DECAP_CAPWAP = 4,
OFP_BSN_DECAP_L2_MPLS = 5,
OFP_BSN_DECAP_L3_GRE = 6,
OFP_BSN_DECAP_GTP = 7,
OFP_BSN_DECAP_L3_MPLS = 8,
};
struct of_bsn_tlv_decap : of_bsn_tlv {
uint16_t type == 85;
uint16_t length;
enum ofp_bsn_decap value;
};
struct of_bsn_tlv_vni : of_bsn_tlv {
uint16_t type == 86;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_mcg_type_vxlan : of_bsn_tlv {
uint16_t type == 87;
uint16_t length;
};
enum ofp_bsn_port_vxlan_mode(wire_type=uint8_t) {
OFP_BSN_PORT_VXLAN_RECIRCULATION_ENABLE = 0,
OFP_BSN_PORT_VXLAN_TERMINATION_ENABLE = 1,
};
struct of_bsn_tlv_port_vxlan_mode : of_bsn_tlv {
uint16_t type == 88;
uint16_t length;
enum ofp_bsn_port_vxlan_mode value;
};
enum ofp_bsn_rate_unit(wire_type=uint8_t) {
OFP_BSN_RATE_UNIT_PPS = 0, /* Packets per second */
OFP_BSN_RATE_UNIT_KBITPS = 1, /* Kilobits per second */
};
struct of_bsn_tlv_rate_unit : of_bsn_tlv {
uint16_t type == 89;
uint16_t length;
enum ofp_bsn_rate_unit value;
};
struct of_bsn_tlv_broadcast_rate : of_bsn_tlv {
uint16_t type == 90;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_known_multicast_rate : of_bsn_tlv {
uint16_t type == 91;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_unknown_multicast_rate : of_bsn_tlv {
uint16_t type == 92;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_unicast_rate : of_bsn_tlv {
uint16_t type == 93;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_nexthop_type_vxlan : of_bsn_tlv {
uint16_t type == 94;
uint16_t length;
};
struct of_bsn_tlv_multicast_interface_id : of_bsn_tlv {
uint16_t type == 95;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_use_packet_state : of_bsn_tlv {
uint16_t type == 96;
uint16_t length;
uint8_t value;
};
enum ofp_bsn_status(wire_type=uint8_t) {
OFP_BSN_STATUS_DISABLE = 0,
OFP_BSN_STATUS_ENABLE = 1,
};
struct of_bsn_tlv_status: of_bsn_tlv {
uint16_t type == 97;
uint16_t length;
enum ofp_bsn_status value;
};
struct of_bsn_vlan_mac {
uint16_t vlan_vid;
of_mac_addr_t mac;
};
struct of_bsn_tlv_vlan_mac_list : of_bsn_tlv {
uint16_t type == 98;
uint16_t length;
list(of_bsn_vlan_mac_t) key;
};
struct of_bsn_tlv_vfi : of_bsn_tlv {
uint16_t type == 99;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_hash_seed : of_bsn_tlv {
uint16_t type == 100;
uint16_t length;
uint32_t seed1;
uint32_t seed2;
};
enum of_bsn_hash_type(wire_type=uint8_t) {
OFP_BSN_HASH_TYPE_L2 = 0,
OFP_BSN_HASH_TYPE_L3 = 1,
OFP_BSN_HASH_TYPE_ENHANCED = 2,
};
struct of_bsn_tlv_hash_type : of_bsn_tlv {
uint16_t type == 101;
uint16_t length;
enum of_bsn_hash_type value;
};
enum of_bsn_hash_packet_type(wire_type=uint8_t) {
OF_BSN_HASH_PACKET_L2 = 0,
OF_BSN_HASH_PACKET_L2GRE = 1,
OF_BSN_HASH_PACKET_IPV4 = 3,
OF_BSN_HASH_PACKET_IPV6 = 4,
OF_BSN_HASH_PACKET_MPLS = 5,
OF_BSN_HASH_PACKET_SYMMETRIC = 6,
};
struct of_bsn_tlv_hash_packet_type : of_bsn_tlv {
uint16_t type == 102;
uint16_t length;
enum of_bsn_hash_packet_type value;
};
enum of_bsn_hash_packet_field(wire_type=uint64_t, bitmask=True) {
// 0x1 is unused
OFP_BSN_HASH_FIELD_DST_MAC = 0x2,
OFP_BSN_HASH_FIELD_SRC_MAC = 0x4,
OFP_BSN_HASH_FIELD_ETH_TYPE = 0x8,
OFP_BSN_HASH_FIELD_VLAN_ID = 0x10,
OFP_BSN_HASH_FIELD_INNER_L2 = 0x20,
OFP_BSN_HASH_FIELD_INNER_L3 = 0x40,
OFP_BSN_HASH_FIELD_SRC_IP = 0x80,
OFP_BSN_HASH_FIELD_DST_IP = 0x100,
OFP_BSN_HASH_FIELD_IP_PROTO = 0x200,
OFP_BSN_HASH_FIELD_SRC_L4_PORT = 0x400,
OFP_BSN_HASH_FIELD_DST_L4_PORT = 0x800,
OFP_BSN_HASH_FIELD_MPLS_LABEL1 = 0x1000,
OFP_BSN_HASH_FIELD_MPLS_LABEL2 = 0x2000,
OFP_BSN_HASH_FIELD_MPLS_LABEL3 = 0x4000,
OFP_BSN_HASH_FIELD_MPLS_LABEL_HI_BITS = 0x8000,
OFP_BSN_HASH_FIELD_MPLS_PAYLOAD_SRC_IP = 0x10000,
OFP_BSN_HASH_FIELD_MPLS_PAYLOAD_DST_IP = 0x20000,
OFP_BSN_HASH_FIELD_SYMMETRIC = 0x40000,
};
struct of_bsn_tlv_hash_packet_field : of_bsn_tlv {
uint16_t type == 103;
uint16_t length;
enum of_bsn_hash_packet_field value;
};
struct of_bsn_tlv_hash_gtp_header_match : of_bsn_tlv {
uint16_t type == 104;
uint16_t length;
uint8_t first_header_byte;
uint8_t first_header_mask;
};
enum of_bsn_hash_gtp_port_match(wire_type=uint8_t) {
OF_BSN_HASH_GTP_PORT_MATCH_SRC = 1,
OF_BSN_HASH_GTP_PORT_MATCH_DST = 2,
OF_BSN_HASH_GTP_PORT_MATCH_SRC_OR_DST = 3,
OF_BSN_HASH_GTP_PORT_MATCH_SRC_AND_DST = 4,
};
struct of_bsn_tlv_hash_gtp_port_match : of_bsn_tlv {
uint16_t type == 105;
uint16_t length;
enum of_bsn_hash_gtp_port_match match;
uint16_t src_port;
uint16_t dst_port;
};
struct of_bsn_tlv_untagged : of_bsn_tlv {
uint16_t type == 106;
uint16_t length;
};
struct of_bsn_tlv_vfp_class_id : of_bsn_tlv {
uint16_t type == 107;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_qos_priority : of_bsn_tlv {
uint16_t type == 108;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_parent_port : of_bsn_tlv {
uint16_t type == 109;
uint16_t length;
of_port_no_t value;
};
struct of_bsn_tlv_loopback_port : of_bsn_tlv {
uint16_t type == 110;
uint16_t length;
of_port_no_t value;
};
struct of_bsn_tlv_vpn_key : of_bsn_tlv {
uint16_t type == 111;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_dscp : of_bsn_tlv {
uint16_t type == 112;
uint16_t length;
uint16_t value; // 0-63
};
struct of_bsn_tlv_ttl : of_bsn_tlv {
uint16_t type == 113;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_next_hop_mac : of_bsn_tlv {
uint16_t type == 114;
uint16_t length;
of_mac_addr_t value;
};
struct of_bsn_tlv_next_hop_ipv4 : of_bsn_tlv {
uint16_t type == 115;
uint16_t length;
of_ipv4_t value;
};
struct of_bsn_tlv_rate_limit : of_bsn_tlv {
uint16_t type == 116;
uint16_t length;
uint32_t value; // in Kbps
};
struct of_bsn_tlv_vxlan_egress_lag : of_bsn_tlv {
uint16_t type == 117;
uint16_t length;
};
struct of_bsn_tlv_cpu_lag : of_bsn_tlv {
uint16_t type == 118;
uint16_t length;
};
struct of_bsn_tlv_uint64_list : of_bsn_tlv {
uint16_t type == 119;
uint16_t length;
list(of_uint64_t) value;
};
struct of_bsn_tlv_disable_src_mac_check : of_bsn_tlv {
uint16_t type == 120;
uint16_t length;
};
struct of_bsn_tlv_drop : of_bsn_tlv {
uint16_t type == 121;
uint16_t length;
};
struct of_bsn_tlv_ipv6_prefix : of_bsn_tlv {
uint16_t type == 122;
uint16_t length;
of_ipv6_t value;
uint8_t prefix_length;
};
struct of_bsn_tlv_ndp_offload : of_bsn_tlv {
uint16_t type == 123;
uint16_t length;
};
struct of_bsn_tlv_ndp_static : of_bsn_tlv {
uint16_t type == 124;
uint16_t length;
};
struct of_bsn_tlv_icmpv6_chksum : of_bsn_tlv {
uint16_t type == 125;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_ipv6_src : of_bsn_tlv {
uint16_t type == 126;
uint16_t length;
of_ipv6_t value;
};
struct of_bsn_tlv_ipv6_dst : of_bsn_tlv {
uint16_t type == 127;
uint16_t length;
of_ipv6_t value;
};
struct of_bsn_tlv_push_vlan_on_ingress : of_bsn_tlv {
uint16_t type == 128;
uint16_t length;
};
// apply_packets and apply_bytes are stat counters, like rx_packet
// identifies packets and bytes applied to some action, for example:
// packets with inet L3/L4 headers for netflow
struct of_bsn_tlv_apply_packets : of_bsn_tlv {
uint16_t type == 129;
uint16_t length;
uint64_t value;
};
struct of_bsn_tlv_apply_bytes : of_bsn_tlv {
uint16_t type == 130;
uint16_t length;
uint64_t value;
};
struct of_bsn_tlv_eth_type : of_bsn_tlv {
uint16_t type == 131;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_ecn : of_bsn_tlv {
uint16_t type == 132;
uint16_t length;
uint8_t value;
};
struct of_bsn_tlv_tcp_flags : of_bsn_tlv {
uint16_t type == 133;
uint16_t length;
uint16_t value;
};
struct of_bsn_tlv_l3_interface_class_id : of_bsn_tlv {
uint16_t type == 134;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_l3_src_class_id : of_bsn_tlv {
uint16_t type == 135;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_l3_dst_class_id : of_bsn_tlv {
uint16_t type == 136;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_egress_only : of_bsn_tlv {
uint16_t type == 137;
uint16_t length;
};
struct of_bsn_tlv_ingress_port_group_id : of_bsn_tlv {
uint16_t type == 138;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_egress_port_group_id : of_bsn_tlv {
uint16_t type == 139;
uint16_t length;
uint32_t value;
};
struct of_bsn_tlv_data_mask : of_bsn_tlv {
uint16_t type == 140;
uint16_t length;
of_octets_t value;
};
enum ofp_bsn_port_usage(wire_type=uint16_t) {
OFP_BSN_PORT_UNUSED = 0,
OFP_BSN_PORT_TRANSMIT_ONLY = 1,
OFP_BSN_PORT_RECEIVE_ONLY = 2,
OFP_BSN_PORT_BIDIRECTION = 3,
};
struct of_bsn_tlv_port_usage : of_bsn_tlv {
uint16_t type == 141;
uint16_t length;
enum ofp_bsn_port_usage value;
};
enum ofp_bsn_tunnel_type(wire_type=uint64_t, bitmask=True) {
OFP_BSN_TUNNEL_L2GRE = 0x1,
};
struct of_bsn_tlv_tunnel_capability : of_bsn_tlv {
uint16_t type == 142;
uint16_t length;
enum ofp_bsn_tunnel_type value;
};
enum ofp_bsn_enhanced_hash_type(wire_type=uint64_t, bitmask=True) {
OFP_BSN_ENHANCED_HASH_L2 = 0x1,
OFP_BSN_ENHANCED_HASH_L3 = 0x2,
OFP_BSN_ENHANCED_HASH_L2GRE = 0x4,
OFP_BSN_ENHANCED_HASH_MPLS = 0x8,
OFP_BSN_ENHANCED_HASH_GTP = 0x10,
OFP_BSN_ENHANCED_HASH_SYMMETRIC = 0x20,
};
struct of_bsn_tlv_enhanced_hash_capability : of_bsn_tlv {
uint16_t type == 143;
uint16_t length;
enum ofp_bsn_enhanced_hash_type value;
};
enum ofp_bsn_auto_negotiation_type(wire_type=uint8_t) {
OFP_BSN_AUTO_NEGOTIATION_DEFAULT = 0,
OFP_BSN_AUTO_NEGOTIATION_ENABLE = 1,
OFP_BSN_AUTO_NEGOTIATION_DISABLE = 2,
};
struct of_bsn_tlv_auto_negotiation : of_bsn_tlv {
uint16_t type == 144;
uint16_t length;
enum ofp_bsn_auto_negotiation_type value;
};
enum ofp_bsn_hash_algorithm_type(wire_type=uint16_t) {
OFP_BSN_HASH_ALGORITHM_CRC16XOR8 = 0,
OFP_BSN_HASH_ALGORITHM_CRC16XOR4 = 1,
OFP_BSN_HASH_ALGORITHM_CRC16XOR2 = 2,
OFP_BSN_HASH_ALGORITHM_CRC16XOR1 = 3,
OFP_BSN_HASH_ALGORITHM_CRC16 = 4,
OFP_BSN_HASH_ALGORITHM_XOR16 = 5,
OFP_BSN_HASH_ALGORITHM_CRC16CCITT = 6,
OFP_BSN_HASH_ALGORITHM_CRC32LO = 7,
OFP_BSN_HASH_ALGORITHM_CRC32HI = 8,
};
struct of_bsn_tlv_hash_algorithm : of_bsn_tlv {
uint16_t type == 145;
uint16_t length;
enum ofp_bsn_hash_algorithm_type value;
};
enum ofp_bsn_loopback_mode(wire_type=uint8_t) {
OFP_BSN_LOOPBACK_MODE_NONE = 0,
OFP_BSN_LOOPBACK_MODE_MAC = 1,
OFP_BSN_LOOPBACK_MODE_PHY = 2,
OFP_BSN_LOOPBACK_MODE_PHY_REMOTE = 3,
};
struct of_bsn_tlv_loopback_mode : of_bsn_tlv {
uint16_t type == 146;
uint16_t length;
enum ofp_bsn_loopback_mode value;
};
struct of_bsn_tlv_no_arp_response : of_bsn_tlv {
uint16_t type == 147;
uint16_t length;
};
struct of_bsn_tlv_no_ns_response : of_bsn_tlv {
uint16_t type == 148;
uint16_t length;
};
enum ofp_bsn_forward_error_correction_type(wire_type=uint8_t) {
OFP_BSN_FORWARD_ERROR_CORRECTION_DEFAULT = 0,
OFP_BSN_FORWARD_ERROR_CORRECTION_ENABLE = 1,
OFP_BSN_FORWARD_ERROR_CORRECTION_DISABLE = 2,
};
struct of_bsn_tlv_forward_error_correction : of_bsn_tlv {
uint16_t type == 149;
uint16_t length;
enum ofp_bsn_forward_error_correction_type value;
};
struct of_bsn_tlv_optics_always_enabled : of_bsn_tlv {
uint16_t type == 150;
uint16_t length;
};
struct of_bsn_tlv_force_link_up : of_bsn_tlv {
uint16_t type == 151;
uint16_t length;
};