| // Copyright 2013, 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. |
| // |
| // Also derived from the OpenFlow header files which have these copyrights: |
| // Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University |
| // Copyright (c) 2011, 2012 Open Networking Foundation |
| |
| #version 3 |
| #version 4 |
| |
| /* TODO fix the C backend to not require this */ |
| struct of_oxm { |
| uint32_t type_len; |
| }; |
| |
| |
| struct of_oxm_arp_op { |
| uint32_t type_len == 0x80002a02; |
| uint16_t value; |
| }; |
| |
| struct of_oxm_arp_op_masked { |
| uint32_t type_len == 0x80002b04; |
| uint16_t value; |
| uint16_t value_mask; |
| }; |
| |
| struct of_oxm_arp_sha { |
| uint32_t type_len == 0x80003006; |
| of_mac_addr_t value; |
| }; |
| |
| struct of_oxm_arp_sha_masked { |
| uint32_t type_len == 0x8000310c; |
| of_mac_addr_t value; |
| of_mac_addr_t value_mask; |
| }; |
| |
| struct of_oxm_arp_spa { |
| uint32_t type_len == 0x80002c04; |
| uint32_t value; |
| }; |
| |
| struct of_oxm_arp_spa_masked { |
| uint32_t type_len == 0x80002d08; |
| uint32_t value; |
| uint32_t value_mask; |
| }; |
| |
| struct of_oxm_arp_tha { |
| uint32_t type_len == 0x80003206; |
| of_mac_addr_t value; |
| }; |
| |
| struct of_oxm_arp_tha_masked { |
| uint32_t type_len == 0x8000330c; |
| of_mac_addr_t value; |
| of_mac_addr_t value_mask; |
| }; |
| |
| struct of_oxm_arp_tpa { |
| uint32_t type_len == 0x80002e04; |
| uint32_t value; |
| }; |
| |
| struct of_oxm_arp_tpa_masked { |
| uint32_t type_len == 0x80002f08; |
| uint32_t value; |
| uint32_t value_mask; |
| }; |
| |
| struct of_oxm_eth_dst { |
| uint32_t type_len == 0x80000606; |
| of_mac_addr_t value; |
| }; |
| |
| struct of_oxm_eth_dst_masked { |
| uint32_t type_len == 0x8000070c; |
| of_mac_addr_t value; |
| of_mac_addr_t value_mask; |
| }; |
| |
| struct of_oxm_eth_src { |
| uint32_t type_len == 0x80000806; |
| of_mac_addr_t value; |
| }; |
| |
| struct of_oxm_eth_src_masked { |
| uint32_t type_len == 0x8000090c; |
| of_mac_addr_t value; |
| of_mac_addr_t value_mask; |
| }; |
| |
| struct of_oxm_eth_type { |
| uint32_t type_len == 0x80000a02; |
| uint16_t value; |
| }; |
| |
| struct of_oxm_eth_type_masked { |
| uint32_t type_len == 0x80000b04; |
| uint16_t value; |
| uint16_t value_mask; |
| }; |
| |
| struct of_oxm_icmpv4_code { |
| uint32_t type_len == 0x80002801; |
| uint8_t value; |
| }; |
| |
| struct of_oxm_icmpv4_code_masked { |
| uint32_t type_len == 0x80002902; |
| uint8_t value; |
| uint8_t value_mask; |
| }; |
| |
| struct of_oxm_icmpv4_type { |
| uint32_t type_len == 0x80002601; |
| uint8_t value; |
| }; |
| |
| struct of_oxm_icmpv4_type_masked { |
| uint32_t type_len == 0x80002702; |
| uint8_t value; |
| uint8_t value_mask; |
| }; |
| |
| struct of_oxm_icmpv6_code { |
| uint32_t type_len == 0x80003c01; |
| uint8_t value; |
| }; |
| |
| struct of_oxm_icmpv6_code_masked { |
| uint32_t type_len == 0x80003d02; |
| uint8_t value; |
| uint8_t value_mask; |
| }; |
| |
| struct of_oxm_icmpv6_type { |
| uint32_t type_len == 0x80003a01; |
| uint8_t value; |
| }; |
| |
| struct of_oxm_icmpv6_type_masked { |
| uint32_t type_len == 0x80003b02; |
| uint8_t value; |
| uint8_t value_mask; |
| }; |
| |
| struct of_oxm_in_phy_port { |
| uint32_t type_len == 0x80000204; |
| of_port_no_t value; |
| }; |
| |
| struct of_oxm_in_phy_port_masked { |
| uint32_t type_len == 0x80000308; |
| of_port_no_t value; |
| of_port_no_t value_mask; |
| }; |
| |
| struct of_oxm_in_port { |
| uint32_t type_len == 0x80000004; |
| of_port_no_t value; |
| }; |
| |
| struct of_oxm_in_port_masked { |
| uint32_t type_len == 0x80000108; |
| of_port_no_t value; |
| of_port_no_t value_mask; |
| }; |
| |
| struct of_oxm_ip_dscp { |
| uint32_t type_len == 0x80001001; |
| uint8_t value; |
| }; |
| |
| struct of_oxm_ip_dscp_masked { |
| uint32_t type_len == 0x80001102; |
| uint8_t value; |
| uint8_t value_mask; |
| }; |
| |
| struct of_oxm_ip_ecn { |
| uint32_t type_len == 0x80001201; |
| uint8_t value; |
| }; |
| |
| struct of_oxm_ip_ecn_masked { |
| uint32_t type_len == 0x80001302; |
| uint8_t value; |
| uint8_t value_mask; |
| }; |
| |
| struct of_oxm_ip_proto { |
| uint32_t type_len == 0x80001401; |
| uint8_t value; |
| }; |
| |
| struct of_oxm_ip_proto_masked { |
| uint32_t type_len == 0x80001502; |
| uint8_t value; |
| uint8_t value_mask; |
| }; |
| |
| struct of_oxm_ipv4_dst { |
| uint32_t type_len == 0x80001804; |
| of_ipv4_t value; |
| }; |
| |
| struct of_oxm_ipv4_dst_masked { |
| uint32_t type_len == 0x80001908; |
| of_ipv4_t value; |
| of_ipv4_t value_mask; |
| }; |
| |
| struct of_oxm_ipv4_src { |
| uint32_t type_len == 0x80001604; |
| of_ipv4_t value; |
| }; |
| |
| struct of_oxm_ipv4_src_masked { |
| uint32_t type_len == 0x80001708; |
| of_ipv4_t value; |
| of_ipv4_t value_mask; |
| }; |
| |
| struct of_oxm_ipv6_dst { |
| uint32_t type_len == 0x80003610; |
| of_ipv6_t value; |
| }; |
| |
| struct of_oxm_ipv6_dst_masked { |
| uint32_t type_len == 0x80003720; |
| of_ipv6_t value; |
| of_ipv6_t value_mask; |
| }; |
| |
| struct of_oxm_ipv6_flabel { |
| uint32_t type_len == 0x80003804; |
| uint32_t value; |
| }; |
| |
| struct of_oxm_ipv6_flabel_masked { |
| uint32_t type_len == 0x80003908; |
| uint32_t value; |
| uint32_t value_mask; |
| }; |
| |
| struct of_oxm_ipv6_nd_sll { |
| uint32_t type_len == 0x80004006; |
| of_mac_addr_t value; |
| }; |
| |
| struct of_oxm_ipv6_nd_sll_masked { |
| uint32_t type_len == 0x8000410c; |
| of_mac_addr_t value; |
| of_mac_addr_t value_mask; |
| }; |
| |
| struct of_oxm_ipv6_nd_target { |
| uint32_t type_len == 0x80003e10; |
| of_ipv6_t value; |
| }; |
| |
| struct of_oxm_ipv6_nd_target_masked { |
| uint32_t type_len == 0x80003f20; |
| of_ipv6_t value; |
| of_ipv6_t value_mask; |
| }; |
| |
| struct of_oxm_ipv6_nd_tll { |
| uint32_t type_len == 0x80004206; |
| of_mac_addr_t value; |
| }; |
| |
| struct of_oxm_ipv6_nd_tll_masked { |
| uint32_t type_len == 0x8000430c; |
| of_mac_addr_t value; |
| of_mac_addr_t value_mask; |
| }; |
| |
| struct of_oxm_ipv6_src { |
| uint32_t type_len == 0x80003410; |
| of_ipv6_t value; |
| }; |
| |
| struct of_oxm_ipv6_src_masked { |
| uint32_t type_len == 0x80003520; |
| of_ipv6_t value; |
| of_ipv6_t value_mask; |
| }; |
| |
| struct of_oxm_metadata { |
| uint32_t type_len == 0x80000408; |
| uint64_t value; |
| }; |
| |
| struct of_oxm_metadata_masked { |
| uint32_t type_len == 0x80000510; |
| uint64_t value; |
| uint64_t value_mask; |
| }; |
| |
| struct of_oxm_mpls_label { |
| uint32_t type_len == 0x80004404; |
| uint32_t value; |
| }; |
| |
| struct of_oxm_mpls_label_masked { |
| uint32_t type_len == 0x80004508; |
| uint32_t value; |
| uint32_t value_mask; |
| }; |
| |
| struct of_oxm_mpls_tc { |
| uint32_t type_len == 0x80004601; |
| uint8_t value; |
| }; |
| |
| struct of_oxm_mpls_tc_masked { |
| uint32_t type_len == 0x80004702; |
| uint8_t value; |
| uint8_t value_mask; |
| }; |
| |
| struct of_oxm_sctp_dst { |
| uint32_t type_len == 0x80002402; |
| uint16_t value; |
| }; |
| |
| struct of_oxm_sctp_dst_masked { |
| uint32_t type_len == 0x80002504; |
| uint16_t value; |
| uint16_t value_mask; |
| }; |
| |
| struct of_oxm_sctp_src { |
| uint32_t type_len == 0x80002202; |
| uint16_t value; |
| }; |
| |
| struct of_oxm_sctp_src_masked { |
| uint32_t type_len == 0x80002304; |
| uint16_t value; |
| uint16_t value_mask; |
| }; |
| |
| struct of_oxm_tcp_dst { |
| uint32_t type_len == 0x80001c02; |
| uint16_t value; |
| }; |
| |
| struct of_oxm_tcp_dst_masked { |
| uint32_t type_len == 0x80001d04; |
| uint16_t value; |
| uint16_t value_mask; |
| }; |
| |
| struct of_oxm_tcp_src { |
| uint32_t type_len == 0x80001a02; |
| uint16_t value; |
| }; |
| |
| struct of_oxm_tcp_src_masked { |
| uint32_t type_len == 0x80001b04; |
| uint16_t value; |
| uint16_t value_mask; |
| }; |
| |
| struct of_oxm_udp_dst { |
| uint32_t type_len == 0x80002002; |
| uint16_t value; |
| }; |
| |
| struct of_oxm_udp_dst_masked { |
| uint32_t type_len == 0x80002104; |
| uint16_t value; |
| uint16_t value_mask; |
| }; |
| |
| struct of_oxm_udp_src { |
| uint32_t type_len == 0x80001e02; |
| uint16_t value; |
| }; |
| |
| struct of_oxm_udp_src_masked { |
| uint32_t type_len == 0x80001f04; |
| uint16_t value; |
| uint16_t value_mask; |
| }; |
| |
| struct of_oxm_vlan_pcp { |
| uint32_t type_len == 0x80000e01; |
| uint8_t value; |
| }; |
| |
| struct of_oxm_vlan_pcp_masked { |
| uint32_t type_len == 0x80000f02; |
| uint8_t value; |
| uint8_t value_mask; |
| }; |
| |
| struct of_oxm_vlan_vid { |
| uint32_t type_len == 0x80000c02; |
| uint16_t value; |
| }; |
| |
| struct of_oxm_vlan_vid_masked { |
| uint32_t type_len == 0x80000d04; |
| uint16_t value; |
| uint16_t value_mask; |
| }; |