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

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