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

struct of_oxm_ipv4_dst_masked {
    uint32_t type_len == 0x80001908;
    uint32_t value;
    uint32_t value_mask;
};

struct of_oxm_ipv4_src {
    uint32_t type_len == 0x80001604;
    uint32_t value;
};

struct of_oxm_ipv4_src_masked {
    uint32_t type_len == 0x80001708;
    uint32_t value;
    uint32_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;
};
