diff --git a/src/core/ext/load_reporting/load_reporting.h b/src/core/ext/load_reporting/load_reporting.h
index c3161bebb7870412753fb88c24775602baec6feb..e37817d8c2fd0dc87034461cb1dfe36a988e1cfb 100644
--- a/src/core/ext/load_reporting/load_reporting.h
+++ b/src/core/ext/load_reporting/load_reporting.h
@@ -38,9 +38,11 @@
 #include "src/core/lib/channel/channel_stack.h"
 
 /** Metadata key for initial metadata coming from clients */
+/* TODO(dgq): change to the final value TBD */
 #define GRPC_LOAD_REPORTING_INITIAL_MD_KEY "load-reporting-initial"
 
 /** Metadata key for trailing metadata from servers */
+/* TODO(dgq): change to the final value TBD */
 #define GRPC_LOAD_REPORTING_TRAILING_MD_KEY "load-reporting-trailing"
 
 /** Identifiers for the invocation point of the users LR callback */
diff --git a/src/core/ext/load_reporting/load_reporting_filter.c b/src/core/ext/load_reporting/load_reporting_filter.c
index 65aba2a6500fc1ea9273bbcea545304dac1ae21c..99b560ae27fc74410296f7847cbac1e38bfd8af5 100644
--- a/src/core/ext/load_reporting/load_reporting_filter.c
+++ b/src/core/ext/load_reporting/load_reporting_filter.c
@@ -43,11 +43,6 @@
 #include "src/core/lib/profiling/timers.h"
 #include "src/core/lib/transport/static_metadata.h"
 
-void (*g_load_reporting_fn)(const grpc_load_reporting_call_data *call_data);
-
-/* The function to be defined */
-void load_reporting_fn(const grpc_load_reporting_call_data *call_data) {}
-
 typedef struct call_data {
   intptr_t id; /**< an id unique to the call */
   char *trailing_md_string;
@@ -68,15 +63,6 @@ typedef struct channel_data {
   intptr_t id; /**< an id unique to the channel */
 } channel_data;
 
-static void invoke_lr_fn(grpc_load_reporting_call_data *lr_call_data) {
-  if (g_load_reporting_fn == NULL) {
-    g_load_reporting_fn = load_reporting_fn;
-  }
-  GPR_TIMER_BEGIN("load_reporting_fn", 0);
-  g_load_reporting_fn(lr_call_data);
-  GPR_TIMER_END("load_reporting_fn", 0);
-}
-
 typedef struct {
   grpc_call_element *elem;
   grpc_exec_ctx *exec_ctx;
@@ -91,6 +77,7 @@ static grpc_mdelem *recv_md_filter(void *user_data, grpc_mdelem *md) {
     calld->service_method = grpc_mdstr_as_c_string(md->value);
   } else if (md->key == GRPC_MDSTR_LOAD_REPORTING_INITIAL) {
     calld->initial_md_string = gpr_strdup(grpc_mdstr_as_c_string(md->value));
+    return NULL;
   }
 
   return md;
@@ -122,13 +109,14 @@ static void on_initial_md_ready(grpc_exec_ctx *exec_ctx, void *user_data,
 /* Constructor for call_data */
 static void init_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem,
                            grpc_call_element_args *args) {
-  channel_data *chand = elem->channel_data;
   call_data *calld = elem->call_data;
   memset(calld, 0, sizeof(call_data));
 
   calld->id = (intptr_t)args->call_stack;
   grpc_closure_init(&calld->on_initial_md_ready, on_initial_md_ready, elem);
 
+  /* TODO(dgq): do something with the data
+  channel_data *chand = elem->channel_data;
   grpc_load_reporting_call_data lr_call_data = {GRPC_LR_POINT_CALL_CREATION,
                                                 (intptr_t)chand->id,
                                                 (intptr_t)calld->id,
@@ -136,16 +124,17 @@ static void init_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem,
                                                 NULL,
                                                 NULL,
                                                 NULL};
-  invoke_lr_fn(&lr_call_data);
+  */
 }
 
 /* Destructor for call_data */
 static void destroy_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem,
                               const grpc_call_final_info *final_info,
                               void *ignored) {
-  channel_data *chand = elem->channel_data;
   call_data *calld = elem->call_data;
 
+  /* TODO(dgq): do something with the data
+  channel_data *chand = elem->channel_data;
   grpc_load_reporting_call_data lr_call_data = {GRPC_LR_POINT_CALL_DESTRUCTION,
                                                 (intptr_t)chand->id,
                                                 (intptr_t)calld->id,
@@ -153,8 +142,7 @@ static void destroy_call_elem(grpc_exec_ctx *exec_ctx, grpc_call_element *elem,
                                                 calld->initial_md_string,
                                                 calld->trailing_md_string,
                                                 calld->service_method};
-
-  invoke_lr_fn(&lr_call_data);
+  */
 
   gpr_free(calld->initial_md_string);
   gpr_free(calld->trailing_md_string);
@@ -171,6 +159,7 @@ static void init_channel_elem(grpc_exec_ctx *exec_ctx,
 
   chand->id = (intptr_t)args->channel_stack;
 
+  /* TODO(dgq): do something with the data
   grpc_load_reporting_call_data lr_call_data = {GRPC_LR_POINT_CHANNEL_CREATION,
                                                 (intptr_t)chand,
                                                 0,
@@ -178,12 +167,13 @@ static void init_channel_elem(grpc_exec_ctx *exec_ctx,
                                                 NULL,
                                                 NULL,
                                                 NULL};
-  invoke_lr_fn(&lr_call_data);
+                                                */
 }
 
 /* Destructor for channel data */
 static void destroy_channel_elem(grpc_exec_ctx *exec_ctx,
                                  grpc_channel_element *elem) {
+  /* TODO(dgq): do something with the data
   channel_data *chand = elem->channel_data;
   grpc_load_reporting_call_data lr_call_data = {
       GRPC_LR_POINT_CHANNEL_DESTRUCTION,
@@ -193,7 +183,7 @@ static void destroy_channel_elem(grpc_exec_ctx *exec_ctx,
       NULL,
       NULL,
       NULL};
-  invoke_lr_fn(&lr_call_data);
+  */
 }
 
 static grpc_mdelem *lr_trailing_md_filter(void *user_data, grpc_mdelem *md) {
@@ -202,6 +192,7 @@ static grpc_mdelem *lr_trailing_md_filter(void *user_data, grpc_mdelem *md) {
 
   if (md->key == GRPC_MDSTR_LOAD_REPORTING_TRAILING) {
     calld->trailing_md_string = gpr_strdup(grpc_mdstr_as_c_string(md->value));
+    return NULL;
   }
 
   return md;
diff --git a/test/core/end2end/tests/load_reporting_hook.c b/test/core/end2end/tests/load_reporting_hook.c
index 40ffa19c3f048f94eb315950ad7f29cb1ba7e4ad..2c6519881aa6516dcb9a52d3b0532086e3e17f15 100644
--- a/test/core/end2end/tests/load_reporting_hook.c
+++ b/test/core/end2end/tests/load_reporting_hook.c
@@ -69,44 +69,6 @@ typedef struct {
   bool fully_processed;
 } load_reporting_data;
 
-static load_reporting_data lr_data;
-
-static void load_reporting_test_fn(
-    const grpc_load_reporting_call_data *call_data) {
-  gpr_mu_lock(&lr_data.mu);
-  switch (call_data->source) {
-    case GRPC_LR_POINT_CHANNEL_CREATION:
-      lr_data.channel_id = call_data->channel_id;
-      break;
-    case GRPC_LR_POINT_CHANNEL_DESTRUCTION:
-      break;
-    case GRPC_LR_POINT_CALL_CREATION:
-      lr_data.call_id = call_data->call_id;
-      break;
-    case GRPC_LR_POINT_CALL_DESTRUCTION:
-      if (lr_data.initial_md_str == NULL) {
-        lr_data.initial_md_str = gpr_strdup(call_data->initial_md_string);
-      }
-      if (lr_data.trailing_md_str == NULL) {
-        lr_data.trailing_md_str = gpr_strdup(call_data->trailing_md_string);
-      }
-      if (lr_data.method_name == NULL) {
-        lr_data.method_name = gpr_strdup(call_data->method_name);
-      }
-
-      lr_data.incoming_bytes = call_data->final_info->stats
-                                   .transport_stream_stats.incoming.data_bytes;
-      lr_data.outgoing_bytes = call_data->final_info->stats
-                                   .transport_stream_stats.outgoing.data_bytes;
-      lr_data.call_final_status = call_data->final_info->final_status;
-      lr_data.fully_processed = true;
-      break;
-    default:
-      abort();
-  }
-  gpr_mu_unlock(&lr_data.mu);
-}
-
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
                                             grpc_channel_args *client_args,
@@ -315,8 +277,8 @@ extern void (*g_load_reporting_fn)(
     const grpc_load_reporting_call_data *call_data);
 
 static void test_load_reporting_hook(grpc_end2end_test_config config) {
-  gpr_mu_init(&lr_data.mu);
-  g_load_reporting_fn = load_reporting_test_fn;
+  /* TODO(dgq): this test is currently a noop until LR is fully defined.
+   * Leaving the rest here, as it'll likely be reusable. */
 
   /* Introduce load reporting for the server through its arguments */
   grpc_arg arg = grpc_load_reporting_enable_arg();
@@ -350,26 +312,6 @@ static void test_load_reporting_hook(grpc_end2end_test_config config) {
   end_test(&f);
   grpc_channel_args_destroy(lr_server_args);
   config.tear_down_data(&f);
-
-  GPR_ASSERT(lr_data.fully_processed);
-  GPR_ASSERT(lr_data.incoming_bytes == strlen(request_msg));
-  GPR_ASSERT(lr_data.outgoing_bytes == strlen(response_msg));
-
-  GPR_ASSERT(lr_data.call_id > 0);
-  GPR_ASSERT(lr_data.channel_id > 0);
-
-  GPR_ASSERT(strcmp(lr_data.method_name, "/gRPCFTW") == 0);
-
-  GPR_ASSERT(lr_data.initial_md_str != NULL);
-  GPR_ASSERT(lr_data.trailing_md_str != NULL);
-  GPR_ASSERT(strcmp(lr_data.initial_md_str, "client-token") == 0);
-  GPR_ASSERT(strcmp(lr_data.trailing_md_str, "server-token") == 0);
-
-  GPR_ASSERT(lr_data.call_final_status == GRPC_STATUS_OK);
-
-  gpr_free(lr_data.initial_md_str);
-  gpr_free(lr_data.trailing_md_str);
-  gpr_free(lr_data.method_name);
 }
 
 void load_reporting_hook(grpc_end2end_test_config config) {