diff --git a/include/openvswitch/automake.mk b/include/openvswitch/automake.mk
index a2bc749..17beb2d 100644
--- a/include/openvswitch/automake.mk
+++ b/include/openvswitch/automake.mk
@@ -14,6 +14,7 @@ openvswitchinclude_HEADERS = \
 	include/openvswitch/thread.h \
 	include/openvswitch/token-bucket.h \
 	include/openvswitch/tun-metadata.h \
+	include/openvswitch/type-props.h \
 	include/openvswitch/types.h \
 	include/openvswitch/util.h \
 	include/openvswitch/uuid.h \
diff --git a/include/openvswitch/type-props.h b/include/openvswitch/type-props.h
new file mode 100644
index 0000000..e5f4fdc
--- /dev/null
+++ b/include/openvswitch/type-props.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2008, 2011, 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.
+ */
+
+#ifndef TYPE_PROPS_H
+#define TYPE_PROPS_H 1
+
+#include <limits.h>
+
+/* True if TYPE is _Bool, false otherwise. */
+#define TYPE_IS_BOOL(TYPE) ((TYPE) 1 == (TYPE) 2)
+
+/* True if TYPE is an integer type (including _Bool), false if it is a
+ * floating-point type. */
+#define TYPE_IS_INTEGER(TYPE) ((TYPE) 1.5 == (TYPE) 1)
+
+/* True if TYPE is a signed integer or floating point type, otherwise false. */
+#define TYPE_IS_SIGNED(TYPE) ((TYPE) 1 > (TYPE) -1)
+
+/* The number of value bits in an signed or unsigned integer TYPE:
+ *
+ *    - _Bool has 1 value bit.
+ *
+ *    - An N-bit unsigned integer type has N value bits.
+ *
+ *    - An N-bit signed integer type has N-1 value bits.
+ */
+#define TYPE_VALUE_BITS(TYPE) \
+    (TYPE_IS_BOOL(TYPE) ? 1 : sizeof(TYPE) * CHAR_BIT - TYPE_IS_SIGNED(TYPE))
+
+/* The minimum or maximum value of a signed or unsigned integer TYPE. */
+#define TYPE_MINIMUM(TYPE) (TYPE_IS_SIGNED(TYPE) ? -TYPE_MAXIMUM(TYPE) - 1 : 0)
+#define TYPE_MAXIMUM(TYPE) \
+    ((((TYPE)1 << (TYPE_VALUE_BITS(TYPE) - 1)) - 1) * 2 + 1)
+
+/* Number of decimal digits required to format an integer of the given TYPE.
+ * Includes space for a sign, if TYPE is signed, but not for a null
+ * terminator.
+ *
+ * The value is an overestimate. */
+#define INT_STRLEN(TYPE) (TYPE_IS_SIGNED(TYPE) + TYPE_VALUE_BITS(TYPE) / 3 + 1)
+
+#endif /* type-props.h */
diff --git a/lib/automake.mk b/lib/automake.mk
index c009a30..ab241ec 100644
--- a/lib/automake.mk
+++ b/lib/automake.mk
@@ -255,7 +255,6 @@ lib_libopenvswitch_la_SOURCES = \
 	lib/token-bucket.c \
 	lib/tun-metadata.c \
 	lib/tun-metadata.h \
-	lib/type-props.h \
 	lib/unaligned.h \
 	lib/unicode.c \
 	lib/unicode.h \
diff --git a/lib/classifier.h b/lib/classifier.h
index d93b82d..57a9593 100644
--- a/lib/classifier.h
+++ b/lib/classifier.h
@@ -303,7 +303,7 @@
 #include "openvswitch/meta-flow.h"
 #include "pvector.h"
 #include "rculist.h"
-#include "type-props.h"
+#include "openvswitch/type-props.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/lib/fatal-signal.c b/lib/fatal-signal.c
index 62acea0..021c869 100644
--- a/lib/fatal-signal.c
+++ b/lib/fatal-signal.c
@@ -32,7 +32,7 @@
 #include "util.h"
 #include "openvswitch/vlog.h"
 
-#include "type-props.h"
+#include "openvswitch/type-props.h"
 
 #ifndef SIG_ATOMIC_MAX
 #define SIG_ATOMIC_MAX TYPE_MAXIMUM(sig_atomic_t)
diff --git a/lib/ofp-print.c b/lib/ofp-print.c
index 7724a0b..2cfe914 100644
--- a/lib/ofp-print.c
+++ b/lib/ofp-print.c
@@ -45,7 +45,7 @@
 #include "openvswitch/ofp-errors.h"
 #include "packets.h"
 #include "dp-packet.h"
-#include "type-props.h"
+#include "openvswitch/type-props.h"
 #include "unaligned.h"
 #include "odp-util.h"
 #include "util.h"
diff --git a/lib/ofp-util.c b/lib/ofp-util.c
index 8da79ca..2b33c65 100644
--- a/lib/ofp-util.c
+++ b/lib/ofp-util.c
@@ -44,7 +44,7 @@
 #include "random.h"
 #include "tun-metadata.h"
 #include "unaligned.h"
-#include "type-props.h"
+#include "openvswitch/type-props.h"
 #include "openvswitch/ofp-errors.h"
 #include "openvswitch/vlog.h"
 #include "bitmap.h"
diff --git a/lib/ofp-util.h b/lib/ofp-util.h
index ca36dc4..2a849ec 100644
--- a/lib/ofp-util.h
+++ b/lib/ofp-util.h
@@ -30,7 +30,7 @@
 #include "openflow/netronome-ext.h"
 #include "openflow/nicira-ext.h"
 #include "openvswitch/types.h"
-#include "type-props.h"
+#include "openvswitch/type-props.h"
 #include "uuid.h"
 
 struct ofpbuf;
diff --git a/lib/signals.c b/lib/signals.c
index 3af6187..36c640b 100644
--- a/lib/signals.c
+++ b/lib/signals.c
@@ -23,7 +23,7 @@
 #include <unistd.h>
 #include "poll-loop.h"
 #include "socket-util.h"
-#include "type-props.h"
+#include "openvswitch/type-props.h"
 #include "util.h"
 #include "openvswitch/vlog.h"
 
diff --git a/lib/signals.h b/lib/signals.h
index 7017ae8..436f934 100644
--- a/lib/signals.h
+++ b/lib/signals.h
@@ -19,7 +19,7 @@
 
 #include <signal.h>
 #include <stddef.h>
-#include "type-props.h"
+#include "openvswitch/type-props.h"
 
 enum { SIGNAL_NAME_BUFSIZE = 7 + INT_STRLEN(int) + 1 };
 const char *signal_name(int signum, char *namebuf, size_t bufsize);
diff --git a/lib/timeval.h b/lib/timeval.h
index 96b5d08..7957dad 100644
--- a/lib/timeval.h
+++ b/lib/timeval.h
@@ -18,7 +18,7 @@
 #define TIMEVAL_H 1
 
 #include <time.h>
-#include "type-props.h"
+#include "openvswitch/type-props.h"
 #include "util.h"
 
 #ifdef  __cplusplus
diff --git a/lib/type-props.h b/lib/type-props.h
deleted file mode 100644
index e5f4fdc..0000000
--- a/lib/type-props.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2008, 2011, 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.
- */
-
-#ifndef TYPE_PROPS_H
-#define TYPE_PROPS_H 1
-
-#include <limits.h>
-
-/* True if TYPE is _Bool, false otherwise. */
-#define TYPE_IS_BOOL(TYPE) ((TYPE) 1 == (TYPE) 2)
-
-/* True if TYPE is an integer type (including _Bool), false if it is a
- * floating-point type. */
-#define TYPE_IS_INTEGER(TYPE) ((TYPE) 1.5 == (TYPE) 1)
-
-/* True if TYPE is a signed integer or floating point type, otherwise false. */
-#define TYPE_IS_SIGNED(TYPE) ((TYPE) 1 > (TYPE) -1)
-
-/* The number of value bits in an signed or unsigned integer TYPE:
- *
- *    - _Bool has 1 value bit.
- *
- *    - An N-bit unsigned integer type has N value bits.
- *
- *    - An N-bit signed integer type has N-1 value bits.
- */
-#define TYPE_VALUE_BITS(TYPE) \
-    (TYPE_IS_BOOL(TYPE) ? 1 : sizeof(TYPE) * CHAR_BIT - TYPE_IS_SIGNED(TYPE))
-
-/* The minimum or maximum value of a signed or unsigned integer TYPE. */
-#define TYPE_MINIMUM(TYPE) (TYPE_IS_SIGNED(TYPE) ? -TYPE_MAXIMUM(TYPE) - 1 : 0)
-#define TYPE_MAXIMUM(TYPE) \
-    ((((TYPE)1 << (TYPE_VALUE_BITS(TYPE) - 1)) - 1) * 2 + 1)
-
-/* Number of decimal digits required to format an integer of the given TYPE.
- * Includes space for a sign, if TYPE is signed, but not for a null
- * terminator.
- *
- * The value is an overestimate. */
-#define INT_STRLEN(TYPE) (TYPE_IS_SIGNED(TYPE) + TYPE_VALUE_BITS(TYPE) / 3 + 1)
-
-#endif /* type-props.h */
diff --git a/lib/unaligned.h b/lib/unaligned.h
index d56f22b..130f337 100644
--- a/lib/unaligned.h
+++ b/lib/unaligned.h
@@ -20,7 +20,7 @@
 #include <stdint.h>
 #include "byte-order.h"
 #include "openvswitch/types.h"
-#include "type-props.h"
+#include "openvswitch/type-props.h"
 #include "util.h"
 
 /* Public API. */
diff --git a/tests/test-type-props.c b/tests/test-type-props.c
index 3c351eb..092c53e 100644
--- a/tests/test-type-props.c
+++ b/tests/test-type-props.c
@@ -15,7 +15,7 @@
  */
 
 #include <config.h>
-#include "type-props.h"
+#include "openvswitch/type-props.h"
 #include <inttypes.h>
 #include <stdio.h>
 #include <stdlib.h>
