diff --git a/helper/include/odp/helper/odph_cuckootable.h b/helper/include/odp/helper/odph_cuckootable.h
index d5699807..55f43fed 100644
--- a/helper/include/odp/helper/odph_cuckootable.h
+++ b/helper/include/odp/helper/odph_cuckootable.h
@@ -52,28 +52,92 @@
 extern "C" {
 #endif
 
+/**
+ * @addtogroup odph_cuckootable ODPH CUCKOO TABLE
+ * @{
+ */
+
+/**
+ * Create a cuckoo table
+ *
+ * @param name       Name of the cuckoo table to be created
+ * @param capacity   Number of elements table may store
+ * @param key_size   Size of the key for each element
+ * @param value_size Size of the value stored for each element
+ *
+ * @return Handle of created cuckoo table
+ * @retval NULL Create failed
+ */
 odph_table_t odph_cuckoo_table_create(
 		const char *name,
 		uint32_t capacity,
 		uint32_t key_size,
 		uint32_t value_size);
 
+/**
+ * Lookup a cuckoo table by name
+ *
+ * @param name Name of the table to be located
+ *
+ * @return Handle of the located cuckoo table
+ * @retval NULL No table matching supplied name found
+ */
 odph_table_t odph_cuckoo_table_lookup(const char *name);
 
+/**
+ * Destroy a cuckoo table
+ *
+ * @param table Handle of the cuckoo table to be destroyed
+ *
+ * @retval 0   Success
+ * @retval < 0 Failure
+ */
 int odph_cuckoo_table_destroy(odph_table_t table);
 
-int odph_cuckoo_table_put_value(
-		odph_table_t table,
-		void *key, void *value);
+/**
+ * Insert a key/value pair into a cuckoo table
+ *
+ * @param table Table into which value is to be stored
+ * @param key   Address of an odph_table_t to be used as key
+ * @param value Value to be associated with specified key
+ *
+ * @retval >= 0 Success
+ * @retval < 0  Failure
+ */
+int odph_cuckoo_table_put_value(odph_table_t table, void *key, void *value);
 
-int odph_cuckoo_table_get_value(
-		odph_table_t table,
-		void *key, void *buffer,
-		uint32_t buffer_size);
+/**
+ * Retrieve a value from a cuckoo table
+ *
+ * @param table Table from which value is to be retrieved
+ * @param key   Address of an odph_table_t to be used as key
+ * @param[out] buffer Address of buffer to receive resulting value
+ * @param buffer_size Size of supplied buffer
+ *
+ * @retval 0   Success
+ * @retval 1   Success
+ * @retval < 0 Failure
+ */
+int odph_cuckoo_table_get_value(odph_table_t table,
+				void *key, void *buffer,
+				uint32_t buffer_size);
 
+/**
+ * Remove a value from a cuckoo table
+ *
+ * @param table Table from which value is to be removed
+ * @param key   Address of odph_table_t to be used as key
+ *
+ * @retval >= 0 Success
+ * @retval < 0  Failure
+ */
 int odph_cuckoo_table_remove_value(odph_table_t table, void *key);
 
-extern odph_table_ops_t odph_cuckoo_table_ops;
+extern odph_table_ops_t odph_cuckoo_table_ops; /**< @internal */
+
+/**
+ * @}
+ */
 
 #ifdef __cplusplus
 }
diff --git a/helper/include/odp/helper/odph_hashtable.h b/helper/include/odp/helper/odph_hashtable.h
index bb75cb9f..1f91f31e 100644
--- a/helper/include/odp/helper/odph_hashtable.h
+++ b/helper/include/odp/helper/odph_hashtable.h
@@ -19,22 +19,93 @@
 extern "C" {
 #endif
 
+/**
+ * @addtogroup odph_hash_table ODPH HASH TABLE
+ * @{
+ */
+
+/**
+ * Create a hash table
+ *
+ * @param name       Name of the hash table to be created.
+ * @param capacity   Number of elements table may store
+ * @param key_size   Size of the key for each element
+ * @param value_size Size of the value stored for each element
+ *
+ * @return Handle of created hash table
+ * @retval NULL Create failed
+ */
 odph_table_t odph_hash_table_create(const char *name,
 				    uint32_t capacity,
 				    uint32_t key_size,
 				    uint32_t value_size);
+
+/**
+ * Lookup a hash table by name
+ *
+ * @param name Name of the table to be located
+ *
+ * @return Handle of the located hash table
+ * @return NULL No table matching supplied name found
+ */
 odph_table_t odph_hash_table_lookup(const char *name);
+
+/**
+ * Destroy a hash table
+ *
+ * @param table Handle of the hash table to be destroyed
+ *
+ * @retval 0   Success
+ * @retval < 0 Failure
+ */
 int odph_hash_table_destroy(odph_table_t table);
+
+/**
+ * Insert a key/value pair into a hash table
+ *
+ * @param table Table into which value is to be stored
+ * @param key   Address of an odph_table_t to be used as key
+ * @param value Value to be associated with specified key
+ *
+ * @retval >= 0 Success
+ * @retval < 0  Failure
+ */
 int odph_hash_put_value(odph_table_t table, void *key, void *value);
+
+/**
+ * Retrieve a value from a hash table
+ *
+ * @param table Table from which value is to be retrieved
+ * @param key   Address of an odph_table_t to be used as key
+ * @param[out] buffer Address of buffer to receive resulting value
+ * @param buffer_size Size of supplied buffer
+ *
+ * @retval 0   Success
+ * @retval 1   Success
+ * @retval < 0 Failure
+ */
 int odph_hash_get_value(odph_table_t table, void *key, void *buffer,
 			uint32_t buffer_size);
+
+/**
+ * Remove a value from a hash table
+ *
+ * @param table Table from which value is to be removed
+ * @param key   Address of odph_table_t to be used as key
+ *
+ * @retval >= 0 Success
+ * @retval < 0  Failure
+ */
 int odph_hash_remove_value(odph_table_t table, void *key);
 
-extern odph_table_ops_t odph_hash_table_ops;
+extern odph_table_ops_t odph_hash_table_ops; /**< @internal */
+
+/**
+ * @}
+ */
 
 #ifdef __cplusplus
 }
 #endif
 
 #endif
-
diff --git a/helper/include/odp/helper/odph_iplookuptable.h b/helper/include/odp/helper/odph_iplookuptable.h
index 0ae6b376..84c2cfdd 100644
--- a/helper/include/odp/helper/odph_iplookuptable.h
+++ b/helper/include/odp/helper/odph_iplookuptable.h
@@ -24,32 +24,99 @@
 extern "C" {
 #endif
 
+/**
+ * @addtogroup odph_iplookuptable ODPH IP LOOKUP TABLE
+ * @{
+ */
+
+/**
+ * IP Lookup Prefix
+ */
 typedef struct {
-	uint32_t ip;
-	uint8_t cidr;
+	uint32_t ip;  /**< IPv4 address */
+	uint8_t cidr; /**< CIDR value for prefix matching */
 } odph_iplookup_prefix_t;
 
-odph_table_t odph_iplookup_table_create(
-		const char *name,
-		uint32_t ODP_IGNORED_1,
-		uint32_t ODP_IGNORED_2,
-		uint32_t value_size);
+/**
+ * Create an IP lookup table
+ *
+ * @param name Name of the table to be created
+ * @param ODP_IGNORED_1 Unused
+ * @param ODP_IGNORED_2 Unused
+ * @param value_size Byte size of each entry in the table
+ *
+ * @return Handle of the created ip lookup table
+ * @retval NULL If table create failed
+ */
+odph_table_t odph_iplookup_table_create(const char *name,
+					uint32_t ODP_IGNORED_1,
+					uint32_t ODP_IGNORED_2,
+					uint32_t value_size);
 
+/**
+ * Lookup an IP lookup table by name
+ *
+ * @param name Name of the table to be located
+ *
+ * @return Handle of the located ip lookup table
+ * @retval NULL No table matching supplied name found
+ */
 odph_table_t odph_iplookup_table_lookup(const char *name);
 
+/**
+ * Destroy an IP lookup table
+ *
+ * @param table Handle of the ip lookup table to be destroyed
+ *
+ * @retval 0 Success
+ * @retval < 0 Failure
+ */
 int odph_iplookup_table_destroy(odph_table_t table);
 
-int odph_iplookup_table_put_value(
-		odph_table_t table, void *key, void *value);
+/**
+ * Insert a key/value pair into an ip lookup table
+ *
+ * @param table Table into which value is to be stored
+ * @param key   Address of an odph_iplookup_prefix_t to be used as key
+ * @param value Value to be associated with specified key
+ *
+ * @retval >= 0 Success
+ * @retval < 0  Failure
+ */
+int odph_iplookup_table_put_value(odph_table_t table, void *key, void *value);
+
+/**
+ * Retrieve a value from an iplookup table
+ *
+ * @param table Table from which value is to be retrieved
+ * @param key   Address of an odph_iplookup_prefix_t to be used as key
+ * @param[out] buffer Address of buffer to receive resulting value
+ * @param buffer_size Size of supplied buffer
+ *
+ * @retval 0 Success
+ * @retval 1 Success
+ * @retval < 0 Failure
+ */
+int odph_iplookup_table_get_value(odph_table_t table, void *key,
+				  void *buffer, uint32_t buffer_size);
 
-int odph_iplookup_table_get_value(
-		odph_table_t table, void *key,
-		void *buffer, uint32_t buffer_size);
+/**
+ * Remove a value from an iplookup table
+ *
+ * @param table Table from which value is to be removed
+ * @param key   Address of odph_iplookup_prefix_t to be used as key
+ *
+ * @retval >= 0 Success
+ * @retval < 0  Failure
+ *
+ */
+int odph_iplookup_table_remove_value(odph_table_t table, void *key);
 
-int odph_iplookup_table_remove_value(
-		odph_table_t table, void *key);
+extern odph_table_ops_t odph_iplookup_table_ops; /**< @internal */
 
-extern odph_table_ops_t odph_iplookup_table_ops;
+/**
+ * @}
+ */
 
 #ifdef __cplusplus
 }
diff --git a/helper/include/odp/helper/odph_lineartable.h b/helper/include/odp/helper/odph_lineartable.h
index 0b56b7fa..cd9fda39 100644
--- a/helper/include/odp/helper/odph_lineartable.h
+++ b/helper/include/odp/helper/odph_lineartable.h
@@ -20,21 +20,82 @@
 extern "C" {
 #endif
 
+/**
+ * @addtogroup odph_lineartable ODPH LINEAR TABLE
+ * @{
+ */
+
+/**
+ * Create a linear table
+ *
+ * @param name        Name of the linear table to be created
+ * @param capacity    Number of elements table may store
+ * @param ODP_IGNORED Ignored parameter
+ * @param value_size  Size of the value stored for each element
+ *
+ * @return Handle of created linear table
+ * @return NULL Create failed
+ */
 odph_table_t odph_linear_table_create(const char *name,
 				      uint32_t capacity,
 				      uint32_t ODP_IGNORED,
 				      uint32_t value_size);
+
+/**
+ * Lookup a linear table
+ *
+ * @param name Name of the table to be located
+ *
+ * @return Handle of the located linear table
+ * @retval NULL No table matching supplied name found
+ */
 odph_table_t odph_linear_table_lookup(const char *name);
+
+/**
+ * Destroy a linear table
+ *
+ * @param table Handle of linear table to be destroyed
+ *
+ * @retval 0   Success
+ * @retval < 0 Failure
+ */
 int odph_linear_table_destroy(odph_table_t table);
+
+/**
+ * Insert a value into a linear table
+ *
+ * @param table Table into which value is to be stored
+ * @param key   Index value used as key
+ * @param value Value to be assoceiated with specified key index
+ *
+ * @retval >= 0 Success
+ * @retval < 0  Failure
+ */
 int odph_linear_put_value(odph_table_t table, void *key, void *value);
+
+/**
+ * Retrieve a value from a linear table
+ *
+ * @param table Table from which value is to be retrieved
+ * @param key   Index value used as key
+ * @param[out] buffer Address of buffer to receive resulting value
+ * @param buffer_size Size of supplied buffer
+ *
+ * @retval 0   Success
+ * @retval 1   Success
+ * @retval < 0 Failure
+ */
 int odph_linear_get_value(odph_table_t table, void *key, void *buffer,
 			  uint32_t buffer_size);
 
-extern odph_table_ops_t odph_linear_table_ops;
+extern odph_table_ops_t odph_linear_table_ops; /**< @internal */
+
+/**
+ * @}
+ */
 
 #ifdef __cplusplus
 }
 #endif
 
 #endif
-
diff --git a/helper/include/odp/helper/table.h b/helper/include/odp/helper/table.h
index 81022e55..b3440ef5 100644
--- a/helper/include/odp/helper/table.h
+++ b/helper/include/odp/helper/table.h
@@ -80,6 +80,11 @@
 extern "C" {
 #endif
 
+/**
+ * @addtogroup odph_tables ODPH TABLES
+ * @{
+ */
+
 #include <stdint.h>
 
 /**
@@ -228,9 +233,12 @@ typedef struct odph_table_ops_t {
 	odph_table_remove_value  f_remove;
 } odph_table_ops_t;
 
+/**
+ * @}
+ */
+
 #ifdef __cplusplus
 }
 #endif
 
 #endif
-
