headers reorg
diff --git a/tools/doxygen/Doxyfile.c++ b/tools/doxygen/Doxyfile.c++
index 8daeb13..ccea4f6 100644
--- a/tools/doxygen/Doxyfile.c++
+++ b/tools/doxygen/Doxyfile.c++
@@ -760,21 +760,13 @@
 # spaces.
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = include/grpc++/async_generic_service.h \
-include/grpc++/async_unary_call.h \
-include/grpc++/auth_context.h \
-include/grpc++/byte_buffer.h \
-include/grpc++/channel.h \
-include/grpc++/channel_arguments.h \
+INPUT                  = include/grpc++/channel.h \
 include/grpc++/client_context.h \
 include/grpc++/completion_queue.h \
-include/grpc++/config.h \
-include/grpc++/config_protobuf.h \
 include/grpc++/create_channel.h \
 include/grpc++/credentials.h \
-include/grpc++/dynamic_thread_pool.h \
-include/grpc++/fixed_size_thread_pool.h \
-include/grpc++/generic_stub.h \
+include/grpc++/generic/async_generic_service.h \
+include/grpc++/generic/generic_stub.h \
 include/grpc++/impl/call.h \
 include/grpc++/impl/client_unary_call.h \
 include/grpc++/impl/grpc_library.h \
@@ -793,13 +785,21 @@
 include/grpc++/server_builder.h \
 include/grpc++/server_context.h \
 include/grpc++/server_credentials.h \
-include/grpc++/slice.h \
-include/grpc++/status.h \
-include/grpc++/status_code_enum.h \
-include/grpc++/stream.h \
-include/grpc++/stub_options.h \
-include/grpc++/thread_pool_interface.h \
-include/grpc++/time.h
+include/grpc++/support/async_unary_call.h \
+include/grpc++/support/auth_context.h \
+include/grpc++/support/byte_buffer.h \
+include/grpc++/support/channel_arguments.h \
+include/grpc++/support/config.h \
+include/grpc++/support/config_protobuf.h \
+include/grpc++/support/dynamic_thread_pool.h \
+include/grpc++/support/fixed_size_thread_pool.h \
+include/grpc++/support/slice.h \
+include/grpc++/support/status.h \
+include/grpc++/support/status_code_enum.h \
+include/grpc++/support/stream.h \
+include/grpc++/support/stub_options.h \
+include/grpc++/support/thread_pool_interface.h \
+include/grpc++/support/time.h
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index 23ff05f..c4a7fb0 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -760,21 +760,13 @@
 # spaces.
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = include/grpc++/async_generic_service.h \
-include/grpc++/async_unary_call.h \
-include/grpc++/auth_context.h \
-include/grpc++/byte_buffer.h \
-include/grpc++/channel.h \
-include/grpc++/channel_arguments.h \
+INPUT                  = include/grpc++/channel.h \
 include/grpc++/client_context.h \
 include/grpc++/completion_queue.h \
-include/grpc++/config.h \
-include/grpc++/config_protobuf.h \
 include/grpc++/create_channel.h \
 include/grpc++/credentials.h \
-include/grpc++/dynamic_thread_pool.h \
-include/grpc++/fixed_size_thread_pool.h \
-include/grpc++/generic_stub.h \
+include/grpc++/generic/async_generic_service.h \
+include/grpc++/generic/generic_stub.h \
 include/grpc++/impl/call.h \
 include/grpc++/impl/client_unary_call.h \
 include/grpc++/impl/grpc_library.h \
@@ -793,13 +785,21 @@
 include/grpc++/server_builder.h \
 include/grpc++/server_context.h \
 include/grpc++/server_credentials.h \
-include/grpc++/slice.h \
-include/grpc++/status.h \
-include/grpc++/status_code_enum.h \
-include/grpc++/stream.h \
-include/grpc++/stub_options.h \
-include/grpc++/thread_pool_interface.h \
-include/grpc++/time.h \
+include/grpc++/support/async_unary_call.h \
+include/grpc++/support/auth_context.h \
+include/grpc++/support/byte_buffer.h \
+include/grpc++/support/channel_arguments.h \
+include/grpc++/support/config.h \
+include/grpc++/support/config_protobuf.h \
+include/grpc++/support/dynamic_thread_pool.h \
+include/grpc++/support/fixed_size_thread_pool.h \
+include/grpc++/support/slice.h \
+include/grpc++/support/status.h \
+include/grpc++/support/status_code_enum.h \
+include/grpc++/support/stream.h \
+include/grpc++/support/stub_options.h \
+include/grpc++/support/thread_pool_interface.h \
+include/grpc++/support/time.h \
 src/cpp/client/secure_credentials.h \
 src/cpp/common/secure_auth_context.h \
 src/cpp/server/secure_server_credentials.h \
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 9446368..8e6afe8 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -13118,21 +13118,13 @@
       "grpc"
     ], 
     "headers": [
-      "include/grpc++/async_generic_service.h", 
-      "include/grpc++/async_unary_call.h", 
-      "include/grpc++/auth_context.h", 
-      "include/grpc++/byte_buffer.h", 
       "include/grpc++/channel.h", 
-      "include/grpc++/channel_arguments.h", 
       "include/grpc++/client_context.h", 
       "include/grpc++/completion_queue.h", 
-      "include/grpc++/config.h", 
-      "include/grpc++/config_protobuf.h", 
       "include/grpc++/create_channel.h", 
       "include/grpc++/credentials.h", 
-      "include/grpc++/dynamic_thread_pool.h", 
-      "include/grpc++/fixed_size_thread_pool.h", 
-      "include/grpc++/generic_stub.h", 
+      "include/grpc++/generic/async_generic_service.h", 
+      "include/grpc++/generic/generic_stub.h", 
       "include/grpc++/impl/call.h", 
       "include/grpc++/impl/client_unary_call.h", 
       "include/grpc++/impl/grpc_library.h", 
@@ -13151,13 +13143,21 @@
       "include/grpc++/server_builder.h", 
       "include/grpc++/server_context.h", 
       "include/grpc++/server_credentials.h", 
-      "include/grpc++/slice.h", 
-      "include/grpc++/status.h", 
-      "include/grpc++/status_code_enum.h", 
-      "include/grpc++/stream.h", 
-      "include/grpc++/stub_options.h", 
-      "include/grpc++/thread_pool_interface.h", 
-      "include/grpc++/time.h", 
+      "include/grpc++/support/async_unary_call.h", 
+      "include/grpc++/support/auth_context.h", 
+      "include/grpc++/support/byte_buffer.h", 
+      "include/grpc++/support/channel_arguments.h", 
+      "include/grpc++/support/config.h", 
+      "include/grpc++/support/config_protobuf.h", 
+      "include/grpc++/support/dynamic_thread_pool.h", 
+      "include/grpc++/support/fixed_size_thread_pool.h", 
+      "include/grpc++/support/slice.h", 
+      "include/grpc++/support/status.h", 
+      "include/grpc++/support/status_code_enum.h", 
+      "include/grpc++/support/stream.h", 
+      "include/grpc++/support/stub_options.h", 
+      "include/grpc++/support/thread_pool_interface.h", 
+      "include/grpc++/support/time.h", 
       "src/cpp/client/create_channel_internal.h", 
       "src/cpp/client/secure_credentials.h", 
       "src/cpp/common/create_auth_context.h", 
@@ -13167,21 +13167,13 @@
     "language": "c++", 
     "name": "grpc++", 
     "src": [
-      "include/grpc++/async_generic_service.h", 
-      "include/grpc++/async_unary_call.h", 
-      "include/grpc++/auth_context.h", 
-      "include/grpc++/byte_buffer.h", 
       "include/grpc++/channel.h", 
-      "include/grpc++/channel_arguments.h", 
       "include/grpc++/client_context.h", 
       "include/grpc++/completion_queue.h", 
-      "include/grpc++/config.h", 
-      "include/grpc++/config_protobuf.h", 
       "include/grpc++/create_channel.h", 
       "include/grpc++/credentials.h", 
-      "include/grpc++/dynamic_thread_pool.h", 
-      "include/grpc++/fixed_size_thread_pool.h", 
-      "include/grpc++/generic_stub.h", 
+      "include/grpc++/generic/async_generic_service.h", 
+      "include/grpc++/generic/generic_stub.h", 
       "include/grpc++/impl/call.h", 
       "include/grpc++/impl/client_unary_call.h", 
       "include/grpc++/impl/grpc_library.h", 
@@ -13200,13 +13192,21 @@
       "include/grpc++/server_builder.h", 
       "include/grpc++/server_context.h", 
       "include/grpc++/server_credentials.h", 
-      "include/grpc++/slice.h", 
-      "include/grpc++/status.h", 
-      "include/grpc++/status_code_enum.h", 
-      "include/grpc++/stream.h", 
-      "include/grpc++/stub_options.h", 
-      "include/grpc++/thread_pool_interface.h", 
-      "include/grpc++/time.h", 
+      "include/grpc++/support/async_unary_call.h", 
+      "include/grpc++/support/auth_context.h", 
+      "include/grpc++/support/byte_buffer.h", 
+      "include/grpc++/support/channel_arguments.h", 
+      "include/grpc++/support/config.h", 
+      "include/grpc++/support/config_protobuf.h", 
+      "include/grpc++/support/dynamic_thread_pool.h", 
+      "include/grpc++/support/fixed_size_thread_pool.h", 
+      "include/grpc++/support/slice.h", 
+      "include/grpc++/support/status.h", 
+      "include/grpc++/support/status_code_enum.h", 
+      "include/grpc++/support/stream.h", 
+      "include/grpc++/support/stub_options.h", 
+      "include/grpc++/support/thread_pool_interface.h", 
+      "include/grpc++/support/time.h", 
       "src/cpp/client/channel.cc", 
       "src/cpp/client/channel_arguments.cc", 
       "src/cpp/client/client_context.cc", 
@@ -13290,21 +13290,13 @@
       "grpc_unsecure"
     ], 
     "headers": [
-      "include/grpc++/async_generic_service.h", 
-      "include/grpc++/async_unary_call.h", 
-      "include/grpc++/auth_context.h", 
-      "include/grpc++/byte_buffer.h", 
       "include/grpc++/channel.h", 
-      "include/grpc++/channel_arguments.h", 
       "include/grpc++/client_context.h", 
       "include/grpc++/completion_queue.h", 
-      "include/grpc++/config.h", 
-      "include/grpc++/config_protobuf.h", 
       "include/grpc++/create_channel.h", 
       "include/grpc++/credentials.h", 
-      "include/grpc++/dynamic_thread_pool.h", 
-      "include/grpc++/fixed_size_thread_pool.h", 
-      "include/grpc++/generic_stub.h", 
+      "include/grpc++/generic/async_generic_service.h", 
+      "include/grpc++/generic/generic_stub.h", 
       "include/grpc++/impl/call.h", 
       "include/grpc++/impl/client_unary_call.h", 
       "include/grpc++/impl/grpc_library.h", 
@@ -13323,34 +13315,34 @@
       "include/grpc++/server_builder.h", 
       "include/grpc++/server_context.h", 
       "include/grpc++/server_credentials.h", 
-      "include/grpc++/slice.h", 
-      "include/grpc++/status.h", 
-      "include/grpc++/status_code_enum.h", 
-      "include/grpc++/stream.h", 
-      "include/grpc++/stub_options.h", 
-      "include/grpc++/thread_pool_interface.h", 
-      "include/grpc++/time.h", 
+      "include/grpc++/support/async_unary_call.h", 
+      "include/grpc++/support/auth_context.h", 
+      "include/grpc++/support/byte_buffer.h", 
+      "include/grpc++/support/channel_arguments.h", 
+      "include/grpc++/support/config.h", 
+      "include/grpc++/support/config_protobuf.h", 
+      "include/grpc++/support/dynamic_thread_pool.h", 
+      "include/grpc++/support/fixed_size_thread_pool.h", 
+      "include/grpc++/support/slice.h", 
+      "include/grpc++/support/status.h", 
+      "include/grpc++/support/status_code_enum.h", 
+      "include/grpc++/support/stream.h", 
+      "include/grpc++/support/stub_options.h", 
+      "include/grpc++/support/thread_pool_interface.h", 
+      "include/grpc++/support/time.h", 
       "src/cpp/client/create_channel_internal.h", 
       "src/cpp/common/create_auth_context.h"
     ], 
     "language": "c++", 
     "name": "grpc++_unsecure", 
     "src": [
-      "include/grpc++/async_generic_service.h", 
-      "include/grpc++/async_unary_call.h", 
-      "include/grpc++/auth_context.h", 
-      "include/grpc++/byte_buffer.h", 
       "include/grpc++/channel.h", 
-      "include/grpc++/channel_arguments.h", 
       "include/grpc++/client_context.h", 
       "include/grpc++/completion_queue.h", 
-      "include/grpc++/config.h", 
-      "include/grpc++/config_protobuf.h", 
       "include/grpc++/create_channel.h", 
       "include/grpc++/credentials.h", 
-      "include/grpc++/dynamic_thread_pool.h", 
-      "include/grpc++/fixed_size_thread_pool.h", 
-      "include/grpc++/generic_stub.h", 
+      "include/grpc++/generic/async_generic_service.h", 
+      "include/grpc++/generic/generic_stub.h", 
       "include/grpc++/impl/call.h", 
       "include/grpc++/impl/client_unary_call.h", 
       "include/grpc++/impl/grpc_library.h", 
@@ -13369,13 +13361,21 @@
       "include/grpc++/server_builder.h", 
       "include/grpc++/server_context.h", 
       "include/grpc++/server_credentials.h", 
-      "include/grpc++/slice.h", 
-      "include/grpc++/status.h", 
-      "include/grpc++/status_code_enum.h", 
-      "include/grpc++/stream.h", 
-      "include/grpc++/stub_options.h", 
-      "include/grpc++/thread_pool_interface.h", 
-      "include/grpc++/time.h", 
+      "include/grpc++/support/async_unary_call.h", 
+      "include/grpc++/support/auth_context.h", 
+      "include/grpc++/support/byte_buffer.h", 
+      "include/grpc++/support/channel_arguments.h", 
+      "include/grpc++/support/config.h", 
+      "include/grpc++/support/config_protobuf.h", 
+      "include/grpc++/support/dynamic_thread_pool.h", 
+      "include/grpc++/support/fixed_size_thread_pool.h", 
+      "include/grpc++/support/slice.h", 
+      "include/grpc++/support/status.h", 
+      "include/grpc++/support/status_code_enum.h", 
+      "include/grpc++/support/stream.h", 
+      "include/grpc++/support/stub_options.h", 
+      "include/grpc++/support/thread_pool_interface.h", 
+      "include/grpc++/support/time.h", 
       "src/cpp/client/channel.cc", 
       "src/cpp/client/channel_arguments.cc", 
       "src/cpp/client/client_context.cc",