diff --git a/include/fluent-bit/flb_downstream.h b/include/fluent-bit/flb_downstream.h
index 40ea1033b47..ae475834a63 100644
--- a/include/fluent-bit/flb_downstream.h
+++ b/include/fluent-bit/flb_downstream.h
@@ -42,6 +42,9 @@ struct flb_downstream {
 
     struct mk_list         busy_queue;
     struct mk_list         destroy_queue;
+
+    /* this is a config map reference coming from the plugin net_setup field */
+    struct flb_net_setup  *net_setup;
 };
 
 static inline int flb_downstream_is_shutting_down(struct flb_downstream *downstream)
diff --git a/src/flb_downstream.c b/src/flb_downstream.c
index fa014a90242..10166dee501 100644
--- a/src/flb_downstream.c
+++ b/src/flb_downstream.c
@@ -60,6 +60,12 @@ struct flb_config_map downstream_net[] = {
      "disabled, the timeout is logged as a debug message"
     },
 
+    {
+     FLB_CONFIG_MAP_BOOL, "net.keepalive", "true",
+     0, FLB_TRUE, offsetof(struct flb_net_setup, keepalive),
+     "Enable or disable Keepalive support"
+    },
+
     /* EOF */
     {0}
 };
@@ -107,6 +113,9 @@ int flb_downstream_setup(struct flb_downstream *stream,
         return -1;
     }
 
+    /* map the net_setup config map coming from the caller */
+    stream->net_setup = net_setup;
+
     mk_list_init(&stream->busy_queue);
     mk_list_init(&stream->destroy_queue);