Merge into master from pull request #247:
openflow_input: add bsn_pktin_flag extension (https://github.com/floodlight/loxigen/pull/247)
diff --git a/openflow_input/bsn_pktin_flag b/openflow_input/bsn_pktin_flag
new file mode 100644
index 0000000..54c942f
--- /dev/null
+++ b/openflow_input/bsn_pktin_flag
@@ -0,0 +1,45 @@
+// Copyright 2014, 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 2014, 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.
+
+#version 4
+
+// In a realistic switch pipeline there are multiple reasons a given packet
+// should be sent to the controller. The packet-in reason field is only 8 bits,
+// so we use the metadata OXM to carry this information.
+
+enum ofp_bsn_pktin_flag(wire_type=uint64_t, bitmask=True) {
+    OFP_BSN_PKTIN_FLAG_PDU = 0x1,
+    OFP_BSN_PKTIN_FLAG_NEW_HOST = 0x2,
+    OFP_BSN_PKTIN_FLAG_STATION_MOVE = 0x4,
+    OFP_BSN_PKTIN_FLAG_ARP = 0x8,
+    OFP_BSN_PKTIN_FLAG_DHCP = 0x10,
+    OFP_BSN_PKTIN_FLAG_L2_CPU = 0x20,
+    OFP_BSN_PKTIN_FLAG_DEBUG = 0x40,
+    OFP_BSN_PKTIN_FLAG_TTL_EXPIRED = 0x80,
+    OFP_BSN_PKTIN_FLAG_L3_MISS = 0x100,
+    OFP_BSN_PKTIN_FLAG_L3_CPU = 0x200,
+};