// 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
#version 5

struct of_oxm {
    uint32_t type_len == ?;
};

struct of_oxm_arp_op : of_oxm {
    uint32_t type_len == 0x80002a02;
    uint16_t value;
};

struct of_oxm_arp_op_masked : of_oxm {
    uint32_t type_len == 0x80002b04;
    uint16_t value;
    uint16_t value_mask;
};

struct of_oxm_arp_sha : of_oxm {
    uint32_t type_len == 0x80003006;
    of_mac_addr_t value;
};

struct of_oxm_arp_sha_masked : of_oxm {
    uint32_t type_len == 0x8000310c;
    of_mac_addr_t value;
    of_mac_addr_t value_mask;
};

struct of_oxm_arp_spa : of_oxm {
    uint32_t type_len == 0x80002c04;
    uint32_t value;
};

struct of_oxm_arp_spa_masked : of_oxm {
    uint32_t type_len == 0x80002d08;
    uint32_t value;
    uint32_t value_mask;
};

struct of_oxm_arp_tha : of_oxm {
    uint32_t type_len == 0x80003206;
    of_mac_addr_t value;
};

struct of_oxm_arp_tha_masked : of_oxm {
    uint32_t type_len == 0x8000330c;
    of_mac_addr_t value;
    of_mac_addr_t value_mask;
};

struct of_oxm_arp_tpa : of_oxm {
    uint32_t type_len == 0x80002e04;
    uint32_t value;
};

struct of_oxm_arp_tpa_masked : of_oxm {
    uint32_t type_len == 0x80002f08;
    uint32_t value;
    uint32_t value_mask;
};

struct of_oxm_eth_dst : of_oxm {
    uint32_t type_len == 0x80000606;
    of_mac_addr_t value;
};

struct of_oxm_eth_dst_masked : of_oxm {
    uint32_t type_len == 0x8000070c;
    of_mac_addr_t value;
    of_mac_addr_t value_mask;
};

struct of_oxm_eth_src : of_oxm {
    uint32_t type_len == 0x80000806;
    of_mac_addr_t value;
};

struct of_oxm_eth_src_masked : of_oxm {
    uint32_t type_len == 0x8000090c;
    of_mac_addr_t value;
    of_mac_addr_t value_mask;
};

struct of_oxm_eth_type : of_oxm {
    uint32_t type_len == 0x80000a02;
    uint16_t value;
};

struct of_oxm_eth_type_masked : of_oxm {
    uint32_t type_len == 0x80000b04;
    uint16_t value;
    uint16_t value_mask;
};

struct of_oxm_icmpv4_code : of_oxm {
    uint32_t type_len == 0x80002801;
    uint8_t value;
};

struct of_oxm_icmpv4_code_masked : of_oxm {
    uint32_t type_len == 0x80002902;
    uint8_t value;
    uint8_t value_mask;
};

struct of_oxm_icmpv4_type : of_oxm {
    uint32_t type_len == 0x80002601;
    uint8_t value;
};

struct of_oxm_icmpv4_type_masked : of_oxm {
    uint32_t type_len == 0x80002702;
    uint8_t value;
    uint8_t value_mask;
};

struct of_oxm_icmpv6_code : of_oxm {
    uint32_t type_len == 0x80003c01;
    uint8_t value;
};

struct of_oxm_icmpv6_code_masked : of_oxm {
    uint32_t type_len == 0x80003d02;
    uint8_t value;
    uint8_t value_mask;
};

struct of_oxm_icmpv6_type : of_oxm {
    uint32_t type_len == 0x80003a01;
    uint8_t value;
};

struct of_oxm_icmpv6_type_masked : of_oxm {
    uint32_t type_len == 0x80003b02;
    uint8_t value;
    uint8_t value_mask;
};

struct of_oxm_in_phy_port : of_oxm {
    uint32_t type_len == 0x80000204;
    of_port_no_t value;
};

struct of_oxm_in_phy_port_masked : of_oxm {
    uint32_t type_len == 0x80000308;
    of_port_no_t value;
    of_port_no_t value_mask;
};

struct of_oxm_in_port : of_oxm {
    uint32_t type_len == 0x80000004;
    of_port_no_t value;
};

struct of_oxm_in_port_masked : of_oxm {
    uint32_t type_len == 0x80000108;
    of_port_no_t value;
    of_port_no_t value_mask;
};

struct of_oxm_ip_dscp : of_oxm {
    uint32_t type_len == 0x80001001;
    uint8_t value;
};

struct of_oxm_ip_dscp_masked : of_oxm {
    uint32_t type_len == 0x80001102;
    uint8_t value;
    uint8_t value_mask;
};

struct of_oxm_ip_ecn : of_oxm {
    uint32_t type_len == 0x80001201;
    uint8_t value;
};

struct of_oxm_ip_ecn_masked : of_oxm {
    uint32_t type_len == 0x80001302;
    uint8_t value;
    uint8_t value_mask;
};

struct of_oxm_ip_proto : of_oxm {
    uint32_t type_len == 0x80001401;
    uint8_t value;
};

struct of_oxm_ip_proto_masked : of_oxm {
    uint32_t type_len == 0x80001502;
    uint8_t value;
    uint8_t value_mask;
};

struct of_oxm_ipv4_dst : of_oxm {
    uint32_t type_len == 0x80001804;
    of_ipv4_t value;
};

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

struct of_oxm_ipv4_src : of_oxm {
    uint32_t type_len == 0x80001604;
    of_ipv4_t value;
};

struct of_oxm_ipv4_src_masked : of_oxm {
    uint32_t type_len == 0x80001708;
    of_ipv4_t value;
    of_ipv4_t value_mask;
};

struct of_oxm_ipv6_dst : of_oxm {
    uint32_t type_len == 0x80003610;
    of_ipv6_t value;
};

struct of_oxm_ipv6_dst_masked : of_oxm {
    uint32_t type_len == 0x80003720;
    of_ipv6_t value;
    of_ipv6_t value_mask;
};

struct of_oxm_ipv6_flabel : of_oxm {
    uint32_t type_len == 0x80003804;
    uint32_t value;
};

struct of_oxm_ipv6_flabel_masked : of_oxm {
    uint32_t type_len == 0x80003908;
    uint32_t value;
    uint32_t value_mask;
};

struct of_oxm_ipv6_nd_sll : of_oxm {
    uint32_t type_len == 0x80004006;
    of_mac_addr_t value;
};

struct of_oxm_ipv6_nd_sll_masked : of_oxm {
    uint32_t type_len == 0x8000410c;
    of_mac_addr_t value;
    of_mac_addr_t value_mask;
};

struct of_oxm_ipv6_nd_target : of_oxm {
    uint32_t type_len == 0x80003e10;
    of_ipv6_t value;
};

struct of_oxm_ipv6_nd_target_masked : of_oxm {
    uint32_t type_len == 0x80003f20;
    of_ipv6_t value;
    of_ipv6_t value_mask;
};

struct of_oxm_ipv6_nd_tll : of_oxm {
    uint32_t type_len == 0x80004206;
    of_mac_addr_t value;
};

struct of_oxm_ipv6_nd_tll_masked : of_oxm {
    uint32_t type_len == 0x8000430c;
    of_mac_addr_t value;
    of_mac_addr_t value_mask;
};

struct of_oxm_ipv6_src : of_oxm {
    uint32_t type_len == 0x80003410;
    of_ipv6_t value;
};

struct of_oxm_ipv6_src_masked : of_oxm {
    uint32_t type_len == 0x80003520;
    of_ipv6_t value;
    of_ipv6_t value_mask;
};

struct of_oxm_metadata : of_oxm {
    uint32_t type_len == 0x80000408;
    uint64_t value;
};

struct of_oxm_metadata_masked : of_oxm {
    uint32_t type_len == 0x80000510;
    uint64_t value;
    uint64_t value_mask;
};

struct of_oxm_mpls_label : of_oxm {
    uint32_t type_len == 0x80004404;
    uint32_t value;
};

struct of_oxm_mpls_label_masked : of_oxm {
    uint32_t type_len == 0x80004508;
    uint32_t value;
    uint32_t value_mask;
};

struct of_oxm_mpls_tc : of_oxm {
    uint32_t type_len == 0x80004601;
    uint8_t value;
};

struct of_oxm_mpls_tc_masked : of_oxm {
    uint32_t type_len == 0x80004702;
    uint8_t value;
    uint8_t value_mask;
};

struct of_oxm_sctp_dst : of_oxm {
    uint32_t type_len == 0x80002402;
    uint16_t value;
};

struct of_oxm_sctp_dst_masked : of_oxm {
    uint32_t type_len == 0x80002504;
    uint16_t value;
    uint16_t value_mask;
};

struct of_oxm_sctp_src : of_oxm {
    uint32_t type_len == 0x80002202;
    uint16_t value;
};

struct of_oxm_sctp_src_masked : of_oxm {
    uint32_t type_len == 0x80002304;
    uint16_t value;
    uint16_t value_mask;
};

struct of_oxm_tcp_dst : of_oxm {
    uint32_t type_len == 0x80001c02;
    uint16_t value;
};

struct of_oxm_tcp_dst_masked : of_oxm {
    uint32_t type_len == 0x80001d04;
    uint16_t value;
    uint16_t value_mask;
};

struct of_oxm_tcp_src : of_oxm {
    uint32_t type_len == 0x80001a02;
    uint16_t value;
};

struct of_oxm_tcp_src_masked : of_oxm {
    uint32_t type_len == 0x80001b04;
    uint16_t value;
    uint16_t value_mask;
};

struct of_oxm_udp_dst : of_oxm {
    uint32_t type_len == 0x80002002;
    uint16_t value;
};

struct of_oxm_udp_dst_masked : of_oxm {
    uint32_t type_len == 0x80002104;
    uint16_t value;
    uint16_t value_mask;
};

struct of_oxm_udp_src : of_oxm {
    uint32_t type_len == 0x80001e02;
    uint16_t value;
};

struct of_oxm_udp_src_masked : of_oxm {
    uint32_t type_len == 0x80001f04;
    uint16_t value;
    uint16_t value_mask;
};

struct of_oxm_vlan_pcp : of_oxm {
    uint32_t type_len == 0x80000e01;
    uint8_t value;
};

struct of_oxm_vlan_pcp_masked : of_oxm {
    uint32_t type_len == 0x80000f02;
    uint8_t value;
    uint8_t value_mask;
};

struct of_oxm_vlan_vid : of_oxm {
    uint32_t type_len == 0x80000c02;
    uint16_t value;
};

struct of_oxm_vlan_vid_masked : of_oxm {
    uint32_t type_len == 0x80000d04;
    uint16_t value;
    uint16_t value_mask;
};
