| // 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; |
| }; |