diff --git a/include/openvswitch/automake.mk b/include/openvswitch/automake.mk
index 90a45cb..46416be 100644
--- a/include/openvswitch/automake.mk
+++ b/include/openvswitch/automake.mk
@@ -2,6 +2,7 @@ openvswitchincludedir = $(includedir)/openvswitch
 openvswitchinclude_HEADERS = \
 	include/openvswitch/compiler.h \
 	include/openvswitch/list.h \
+	include/openvswitch/ofp-parse.h \
 	include/openvswitch/thread.h \
 	include/openvswitch/token-bucket.h \
 	include/openvswitch/types.h \
diff --git a/include/openvswitch/ofp-parse.h b/include/openvswitch/ofp-parse.h
new file mode 100644
index 0000000..258ec3b
--- /dev/null
+++ b/include/openvswitch/ofp-parse.h
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2010, 2011, 2012, 2013, 2014, 2015 Nicira, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* OpenFlow protocol string to flow parser. */
+
+#ifndef OPENVSWITCH_OFP_PARSE_H
+#define OPENVSWITCH_OFP_PARSE_H 1
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include "openvswitch/compiler.h"
+#include "openvswitch/types.h"
+
+struct flow;
+struct ofpbuf;
+struct ofputil_flow_mod;
+struct ofputil_flow_monitor_request;
+struct ofputil_flow_stats_request;
+struct ofputil_group_mod;
+struct ofputil_meter_mod;
+struct ofputil_table_mod;
+struct ofputil_tlv_table_mod;
+struct simap;
+enum ofputil_protocol;
+
+char *parse_ofp_str(struct ofputil_flow_mod *, int command, const char *str_,
+                    enum ofputil_protocol *usable_protocols)
+    OVS_WARN_UNUSED_RESULT;
+
+char *parse_ofp_flow_mod_str(struct ofputil_flow_mod *, const char *string,
+                             int command,
+                             enum ofputil_protocol *usable_protocols)
+    OVS_WARN_UNUSED_RESULT;
+
+char *parse_ofp_table_mod(struct ofputil_table_mod *,
+                          const char *table_id, const char *flow_miss_handling,
+                          uint32_t *usable_versions)
+    OVS_WARN_UNUSED_RESULT;
+
+char *parse_ofp_flow_mod_file(const char *file_name, int command,
+                              struct ofputil_flow_mod **fms, size_t *n_fms,
+                              enum ofputil_protocol *usable_protocols)
+    OVS_WARN_UNUSED_RESULT;
+
+char *parse_ofp_flow_stats_request_str(struct ofputil_flow_stats_request *,
+                                       bool aggregate, const char *string,
+                                       enum ofputil_protocol *usable_protocols)
+    OVS_WARN_UNUSED_RESULT;
+
+char *parse_ofp_exact_flow(struct flow *flow, struct flow *mask, const char *s,
+                           const struct simap *portno_names);
+
+char *parse_ofp_meter_mod_str(struct ofputil_meter_mod *, const char *string,
+                              int command,
+                              enum ofputil_protocol *usable_protocols)
+    OVS_WARN_UNUSED_RESULT;
+
+char *parse_flow_monitor_request(struct ofputil_flow_monitor_request *,
+                                 const char *,
+                                 enum ofputil_protocol *usable_protocols)
+    OVS_WARN_UNUSED_RESULT;
+
+char *parse_ofp_group_mod_file(const char *file_name, uint16_t command,
+                               struct ofputil_group_mod **gms, size_t *n_gms,
+                               enum ofputil_protocol *usable_protocols)
+    OVS_WARN_UNUSED_RESULT;
+
+char *parse_ofp_group_mod_str(struct ofputil_group_mod *, uint16_t command,
+                              const char *string,
+                              enum ofputil_protocol *usable_protocols)
+    OVS_WARN_UNUSED_RESULT;
+
+char *parse_ofp_tlv_table_mod_str(struct ofputil_tlv_table_mod *,
+                                     uint16_t command, const char *string,
+                                     enum ofputil_protocol *usable_protocols)
+    OVS_WARN_UNUSED_RESULT;
+
+char *str_to_u8(const char *str, const char *name, uint8_t *valuep)
+    OVS_WARN_UNUSED_RESULT;
+char *str_to_u16(const char *str, const char *name, uint16_t *valuep)
+    OVS_WARN_UNUSED_RESULT;
+char *str_to_u32(const char *str, uint32_t *valuep) OVS_WARN_UNUSED_RESULT;
+char *str_to_u64(const char *str, uint64_t *valuep) OVS_WARN_UNUSED_RESULT;
+char *str_to_be64(const char *str, ovs_be64 *valuep) OVS_WARN_UNUSED_RESULT;
+char *str_to_mac(const char *str, struct eth_addr *mac) OVS_WARN_UNUSED_RESULT;
+char *str_to_ip(const char *str, ovs_be32 *ip) OVS_WARN_UNUSED_RESULT;
+char *str_to_connhelper(const char *str, uint16_t *alg) OVS_WARN_UNUSED_RESULT;
+char *parse_ofp_table_vacancy(struct ofputil_table_mod *,
+                              const char *flow_miss_handling)
+    OVS_WARN_UNUSED_RESULT;
+
+#endif /* ofp-parse.h */
diff --git a/lib/automake.mk b/lib/automake.mk
index 27a1669..ea2f898 100644
--- a/lib/automake.mk
+++ b/lib/automake.mk
@@ -147,7 +147,6 @@ lib_libopenvswitch_la_SOURCES = \
 	lib/ofp-msgs.c \
 	lib/ofp-msgs.h \
 	lib/ofp-parse.c \
-	lib/ofp-parse.h \
 	lib/ofp-print.c \
 	lib/ofp-print.h \
 	lib/ofp-prop.c \
diff --git a/lib/dpctl.c b/lib/dpctl.c
index d58df0d..3292713 100644
--- a/lib/dpctl.c
+++ b/lib/dpctl.c
@@ -39,7 +39,6 @@
 #include "netdev-dpdk.h"
 #include "netlink.h"
 #include "odp-util.h"
-#include "ofp-parse.h"
 #include "ofpbuf.h"
 #include "ovs-numa.h"
 #include "packets.h"
@@ -50,6 +49,7 @@
 #include "timeval.h"
 #include "unixctl.h"
 #include "util.h"
+#include "openvswitch/ofp-parse.h"
 
 typedef int dpctl_command_handler(int argc, const char *argv[],
                                   struct dpctl_params *);
diff --git a/lib/learning-switch.c b/lib/learning-switch.c
index 19a90db..c6103cf 100644
--- a/lib/learning-switch.c
+++ b/lib/learning-switch.c
@@ -33,7 +33,6 @@
 #include "ofp-actions.h"
 #include "ofp-errors.h"
 #include "ofp-msgs.h"
-#include "ofp-parse.h"
 #include "ofp-print.h"
 #include "ofp-util.h"
 #include "openflow/openflow.h"
@@ -42,6 +41,7 @@
 #include "shash.h"
 #include "simap.h"
 #include "timeval.h"
+#include "openvswitch/ofp-parse.h"
 #include "openvswitch/vconn.h"
 #include "openvswitch/vlog.h"
 
diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c
index ae961f6..e33bfb2 100644
--- a/lib/ofp-actions.c
+++ b/lib/ofp-actions.c
@@ -29,12 +29,12 @@
 #include "multipath.h"
 #include "nx-match.h"
 #include "odp-netlink.h"
-#include "ofp-parse.h"
 #include "ofp-prop.h"
 #include "ofp-util.h"
 #include "ofpbuf.h"
 #include "unaligned.h"
 #include "util.h"
+#include "openvswitch/ofp-parse.h"
 #include "openvswitch/vlog.h"
 
 VLOG_DEFINE_THIS_MODULE(ofp_actions);
diff --git a/lib/ofp-parse.c b/lib/ofp-parse.c
index 5ef3892..ab52674 100644
--- a/lib/ofp-parse.c
+++ b/lib/ofp-parse.c
@@ -16,8 +16,6 @@
 
 #include <config.h>
 
-#include "ofp-parse.h"
-
 #include <ctype.h>
 #include <errno.h>
 #include <stdlib.h>
@@ -38,6 +36,7 @@
 #include "packets.h"
 #include "simap.h"
 #include "socket-util.h"
+#include "openvswitch/ofp-parse.h"
 #include "openvswitch/vconn.h"
 
 /* Parses 'str' as an 8-bit unsigned integer into '*valuep'.
diff --git a/lib/ofp-parse.h b/lib/ofp-parse.h
deleted file mode 100644
index a1c147b..0000000
--- a/lib/ofp-parse.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (c) 2010, 2011, 2012, 2013, 2014, 2015 Nicira, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* OpenFlow protocol string to flow parser. */
-
-#ifndef OFP_PARSE_H
-#define OFP_PARSE_H 1
-
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include "compiler.h"
-#include "openvswitch/types.h"
-#include "packets.h"
-
-struct flow;
-struct ofpbuf;
-struct ofputil_flow_mod;
-struct ofputil_flow_monitor_request;
-struct ofputil_flow_stats_request;
-struct ofputil_group_mod;
-struct ofputil_meter_mod;
-struct ofputil_table_mod;
-struct ofputil_tlv_table_mod;
-struct simap;
-enum ofputil_protocol;
-
-char *parse_ofp_str(struct ofputil_flow_mod *, int command, const char *str_,
-                    enum ofputil_protocol *usable_protocols)
-    OVS_WARN_UNUSED_RESULT;
-
-char *parse_ofp_flow_mod_str(struct ofputil_flow_mod *, const char *string,
-                             int command,
-                             enum ofputil_protocol *usable_protocols)
-    OVS_WARN_UNUSED_RESULT;
-
-char *parse_ofp_table_mod(struct ofputil_table_mod *,
-                          const char *table_id, const char *flow_miss_handling,
-                          uint32_t *usable_versions)
-    OVS_WARN_UNUSED_RESULT;
-
-char *parse_ofp_flow_mod_file(const char *file_name, int command,
-                              struct ofputil_flow_mod **fms, size_t *n_fms,
-                              enum ofputil_protocol *usable_protocols)
-    OVS_WARN_UNUSED_RESULT;
-
-char *parse_ofp_flow_stats_request_str(struct ofputil_flow_stats_request *,
-                                       bool aggregate, const char *string,
-                                       enum ofputil_protocol *usable_protocols)
-    OVS_WARN_UNUSED_RESULT;
-
-char *parse_ofp_exact_flow(struct flow *flow, struct flow *mask, const char *s,
-                           const struct simap *portno_names);
-
-char *parse_ofp_meter_mod_str(struct ofputil_meter_mod *, const char *string,
-                              int command,
-                              enum ofputil_protocol *usable_protocols)
-    OVS_WARN_UNUSED_RESULT;
-
-char *parse_flow_monitor_request(struct ofputil_flow_monitor_request *,
-                                 const char *,
-                                 enum ofputil_protocol *usable_protocols)
-    OVS_WARN_UNUSED_RESULT;
-
-char *parse_ofp_group_mod_file(const char *file_name, uint16_t command,
-                               struct ofputil_group_mod **gms, size_t *n_gms,
-                               enum ofputil_protocol *usable_protocols)
-    OVS_WARN_UNUSED_RESULT;
-
-char *parse_ofp_group_mod_str(struct ofputil_group_mod *, uint16_t command,
-                              const char *string,
-                              enum ofputil_protocol *usable_protocols)
-    OVS_WARN_UNUSED_RESULT;
-
-char *parse_ofp_tlv_table_mod_str(struct ofputil_tlv_table_mod *,
-                                     uint16_t command, const char *string,
-                                     enum ofputil_protocol *usable_protocols)
-    OVS_WARN_UNUSED_RESULT;
-
-char *str_to_u8(const char *str, const char *name, uint8_t *valuep)
-    OVS_WARN_UNUSED_RESULT;
-char *str_to_u16(const char *str, const char *name, uint16_t *valuep)
-    OVS_WARN_UNUSED_RESULT;
-char *str_to_u32(const char *str, uint32_t *valuep) OVS_WARN_UNUSED_RESULT;
-char *str_to_u64(const char *str, uint64_t *valuep) OVS_WARN_UNUSED_RESULT;
-char *str_to_be64(const char *str, ovs_be64 *valuep) OVS_WARN_UNUSED_RESULT;
-char *str_to_mac(const char *str, struct eth_addr *mac) OVS_WARN_UNUSED_RESULT;
-char *str_to_ip(const char *str, ovs_be32 *ip) OVS_WARN_UNUSED_RESULT;
-char *str_to_connhelper(const char *str, uint16_t *alg) OVS_WARN_UNUSED_RESULT;
-char *parse_ofp_table_vacancy(struct ofputil_table_mod *,
-                              const char *flow_miss_handling)
-    OVS_WARN_UNUSED_RESULT;
-
-#endif /* ofp-parse.h */
diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
index b963ff2..6f98fed 100644
--- a/ofproto/ofproto-dpif.c
+++ b/ofproto/ofproto-dpif.c
@@ -50,7 +50,6 @@
 #include "ofp-util.h"
 #include "ofpbuf.h"
 #include "ofp-actions.h"
-#include "ofp-parse.h"
 #include "ofp-print.h"
 #include "ofproto-dpif-ipfix.h"
 #include "ofproto-dpif-mirror.h"
@@ -70,6 +69,7 @@
 #include "unaligned.h"
 #include "unixctl.h"
 #include "vlan-bitmap.h"
+#include "openvswitch/ofp-parse.h"
 #include "openvswitch/vlog.h"
 
 VLOG_DEFINE_THIS_MODULE(ofproto_dpif);
diff --git a/tests/test-odp.c b/tests/test-odp.c
index 8565ab6..5225535 100644
--- a/tests/test-odp.c
+++ b/tests/test-odp.c
@@ -21,10 +21,10 @@
 #include "dynamic-string.h"
 #include "flow.h"
 #include "match.h"
-#include "ofp-parse.h"
 #include "ofpbuf.h"
 #include "ovstest.h"
 #include "util.h"
+#include "openvswitch/ofp-parse.h"
 #include "openvswitch/vlog.h"
 
 static int
diff --git a/utilities/ovs-dpctl.c b/utilities/ovs-dpctl.c
index 89a5a60..ba7fb8e 100644
--- a/utilities/ovs-dpctl.c
+++ b/utilities/ovs-dpctl.c
@@ -36,10 +36,10 @@
 #include "dpctl.h"
 #include "fatal-signal.h"
 #include "odp-util.h"
-#include "ofp-parse.h"
 #include "packets.h"
 #include "timeval.h"
 #include "util.h"
+#include "openvswitch/ofp-parse.h"
 #include "openvswitch/vlog.h"
 
 static struct dpctl_params dpctl_p;
diff --git a/utilities/ovs-ofctl.c b/utilities/ovs-ofctl.c
index c1876fd..1794177 100644
--- a/utilities/ovs-ofctl.c
+++ b/utilities/ovs-ofctl.c
@@ -42,7 +42,6 @@
 #include "ofp-actions.h"
 #include "ofp-errors.h"
 #include "ofp-msgs.h"
-#include "ofp-parse.h"
 #include "ofp-print.h"
 #include "ofp-util.h"
 #include "ofp-version-opt.h"
@@ -60,6 +59,7 @@
 #include "timeval.h"
 #include "unixctl.h"
 #include "util.h"
+#include "openvswitch/ofp-parse.h"
 #include "openvswitch/vconn.h"
 #include "openvswitch/vlog.h"
 #include "meta-flow.h"
diff --git a/utilities/ovs-testcontroller.c b/utilities/ovs-testcontroller.c
index 60cc32f..550c331 100644
--- a/utilities/ovs-testcontroller.c
+++ b/utilities/ovs-testcontroller.c
@@ -29,7 +29,6 @@
 #include "daemon.h"
 #include "fatal-signal.h"
 #include "learning-switch.h"
-#include "ofp-parse.h"
 #include "ofp-version-opt.h"
 #include "ofpbuf.h"
 #include "openflow/openflow.h"
@@ -40,6 +39,7 @@
 #include "timeval.h"
 #include "unixctl.h"
 #include "util.h"
+#include "openvswitch/ofp-parse.h"
 #include "openvswitch/vconn.h"
 #include "openvswitch/vlog.h"
 #include "socket-util.h"
