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

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