diff --git a/CMakeModules/prepare_asapo.cmake b/CMakeModules/prepare_asapo.cmake
index ce5c33d92ff39fb8ee26332194512844b64c79e7..981593512e060dcb2ebbf1e2d4cf940b5ddc2909 100644
--- a/CMakeModules/prepare_asapo.cmake
+++ b/CMakeModules/prepare_asapo.cmake
@@ -27,22 +27,25 @@ function(prepare_asapo)
     endif()
 
     if (WIN32)
-        configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/receiver.json.tpl.win.in receiver.json.tpl @ONLY)
-        configure_file(${CMAKE_SOURCE_DIR}/config/nomad/nginx_kill_win.nmd nginx_kill.nmd @ONLY)
+        configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/receiver_tcp.json.tpl.win.in receiver_tcp.json.tpl @ONLY)
         configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/authorizer_settings.json.tpl.win authorizer.json.tpl COPYONLY)
         configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/common_scripts/start_services.bat start_services.bat COPYONLY)
         configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/common_scripts/stop_services.bat stop_services.bat COPYONLY)
 
+        configure_file(${CMAKE_SOURCE_DIR}/config/nomad/receiver_tcp.nmd.in  receiver_tcp.nmd @ONLY)
+        configure_file(${CMAKE_SOURCE_DIR}/config/nomad/nginx_kill_win.nmd nginx_kill.nmd @ONLY)
     else()
-        configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/receiver.json.tpl.lin.in receiver.json.tpl @ONLY)
-        configure_file(${CMAKE_SOURCE_DIR}/config/nomad/nginx_kill_lin.nmd nginx_kill.nmd @ONLY)
+        configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/receiver_tcp.json.tpl.lin.in receiver_tcp.json.tpl @ONLY)
+        configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/receiver_fabric.json.tpl.lin.in receiver_fabric.json.tpl @ONLY)
         configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/authorizer_settings.json.tpl.lin authorizer.json.tpl COPYONLY)
         configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/common_scripts/start_services.sh start_services.sh COPYONLY)
         configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/common_scripts/stop_services.sh stop_services.sh COPYONLY)
 
+        configure_file(${CMAKE_SOURCE_DIR}/config/nomad/receiver_tcp.nmd.in  receiver_tcp.nmd @ONLY)
+        configure_file(${CMAKE_SOURCE_DIR}/config/nomad/receiver_fabric.nmd.in  receiver_fabric.nmd @ONLY)
+        configure_file(${CMAKE_SOURCE_DIR}/config/nomad/nginx_kill_lin.nmd nginx_kill.nmd @ONLY)
     endif()
 
-    configure_file(${CMAKE_SOURCE_DIR}/config/nomad/receiver.nmd.in  receiver.nmd @ONLY)
     configure_file(${CMAKE_SOURCE_DIR}/config/nomad/discovery.nmd.in  discovery.nmd @ONLY)
     configure_file(${CMAKE_SOURCE_DIR}/config/nomad/authorizer.nmd.in  authorizer.nmd @ONLY)
     configure_file(${CMAKE_SOURCE_DIR}/config/nomad/file_transfer.nmd.in  file_transfer.nmd @ONLY)
@@ -54,7 +57,6 @@ function(prepare_asapo)
     configure_file(${CMAKE_SOURCE_DIR}/tests/automatic/settings/nginx.conf.tpl nginx.conf.tpl COPYONLY)
     configure_file(${CMAKE_SOURCE_DIR}/config/nomad/nginx.nmd.in nginx.nmd @ONLY)
 
-
 endfunction()
 
 macro(configure_files srcDir destDir)
diff --git a/common/cpp/include/common/networking.h b/common/cpp/include/common/networking.h
index 8f69453cf620b4a5f1d3d1152a17271c87095066..84f296f3df4f32445b4bbfd502afc0d62c827f34 100644
--- a/common/cpp/include/common/networking.h
+++ b/common/cpp/include/common/networking.h
@@ -14,6 +14,7 @@ typedef uint64_t NetworkRequestId;
 
 enum class NetworkConnectionType {
     kAsapoTcp, // ASAPOs TCP (Multiple connections for parallel data transfers)
+    kFabric, // Fabric connection (Primarily used for InfiniBand verbs)
 };
 
 enum Opcode : uint8_t {
diff --git a/config/nomad/receiver_fabric.nmd.in b/config/nomad/receiver_fabric.nmd.in
new file mode 100644
index 0000000000000000000000000000000000000000..0c4d2174727eb6bfca65167b4925001188601a81
--- /dev/null
+++ b/config/nomad/receiver_fabric.nmd.in
@@ -0,0 +1,47 @@
+job "receiver" {
+  datacenters = ["dc1"]
+
+  type = "service"
+
+  group "group" {
+    count = 1
+
+    task "receiver" {
+      driver = "raw_exec"
+
+      config {
+        command = "@RECEIVER_DIR@/@RECEIVER_NAME@",
+        args =  ["${NOMAD_TASK_DIR}/receiver.json"]
+      }
+
+      resources {
+        cpu    = 500 # 500 MHz
+        memory = 256 # 256MB
+        network {
+          port "recv" {}
+          port "recv_ds" {}
+        }
+      }
+
+      service {
+        name = "asapo-receiver"
+        port = "recv"
+        check {
+          name     = "alive"
+          type     = "tcp"
+          interval = "10s"
+          timeout  = "2s"
+          initial_status =   "passing"
+        }
+      }
+
+      template {
+         source        = "@WORK_DIR@/receiver_fabric.json.tpl"
+         destination   = "local/receiver.json"
+         change_mode   = "signal"
+         change_signal = "SIGHUP"
+      }
+
+    }
+  }
+}
diff --git a/config/nomad/receiver.nmd.in b/config/nomad/receiver_tcp.nmd.in
similarity index 93%
rename from config/nomad/receiver.nmd.in
rename to config/nomad/receiver_tcp.nmd.in
index 282208f29ed6b52887a9628d69ab86d90d45c04b..0d563934e9741538930dd51b7f90907ece08bb59 100644
--- a/config/nomad/receiver.nmd.in
+++ b/config/nomad/receiver_tcp.nmd.in
@@ -36,7 +36,7 @@ job "receiver" {
       }
 
       template {
-         source        = "@WORK_DIR@/receiver.json.tpl"
+         source        = "@WORK_DIR@/receiver_tcp.json.tpl"
          destination   = "local/receiver.json"
          change_mode   = "signal"
          change_signal = "SIGHUP"
diff --git a/consumer/api/cpp/src/data_broker.cpp b/consumer/api/cpp/src/data_broker.cpp
index 1f3b1db63f68a21992a76d3283271c5c96e13007..451dd17fce9d379722906e9d84a5ffc18085550f 100644
--- a/consumer/api/cpp/src/data_broker.cpp
+++ b/consumer/api/cpp/src/data_broker.cpp
@@ -25,6 +25,7 @@ std::unique_ptr<DataBroker> Create(const std::string& source_name,
 
 }
 
+// TODO Add NetworkConnectionType
 std::unique_ptr<DataBroker> DataBrokerFactory::CreateServerBroker(std::string server_name, std::string source_path,
         bool has_filesystem, SourceCredentials source,
         Error* error) noexcept {
diff --git a/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp b/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp
index 9e44b551b7301e8367751edb11aad86dca6cdc33..ff15633f4734cd5a4c7a79d5c45a1a2865286699 100644
--- a/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp
+++ b/receiver/unittests/receiver_data_server/net_server/test_rds_fabric_server.cpp
@@ -98,8 +98,8 @@ TEST_F(RdsFabricServerTests, Initialize_Error_DoubleInitialize) {
             ));
 
     EXPECT_CALL(mock_fabric_server, GetAddress()).WillOnce(Return(
-            "TestAddress"
-    ));
+                "TestAddress"
+            ));
 
     Error err = rds_server.Initialize();
     ASSERT_THAT(rds_server.server__, Ne(nullptr));
diff --git a/tests/automatic/settings/receiver_fabric.json.tpl.lin.in b/tests/automatic/settings/receiver_fabric.json.tpl.lin.in
new file mode 100644
index 0000000000000000000000000000000000000000..3c7ec5ef1e2e0b8d9353e5c475af2a2f39ab8e03
--- /dev/null
+++ b/tests/automatic/settings/receiver_fabric.json.tpl.lin.in
@@ -0,0 +1,25 @@
+{
+  "PerformanceDbServer":"localhost:8086",
+  "PerformanceDbName": "db_test",
+  "DatabaseServer":"auto",
+  "DiscoveryServer": "localhost:8400/asapo-discovery",
+  "DataServer": {
+    "AdvertiseURI": "127.0.0.1:{{ env "NOMAD_PORT_recv_ds" }}",
+    "NThreads": 2,
+    "ListenPort": {{ env "NOMAD_PORT_recv_ds" }},
+    "NetworkMode": ["fabric"]
+  },
+  "DataCache": {
+    "Use": @RECEIVER_USE_CACHE@,
+    "SizeGB": 1,
+    "ReservedShare": 10
+  },
+  "AuthorizationServer": "localhost:8400/asapo-authorizer",
+  "AuthorizationInterval": 1000,
+  "ListenPort": {{ env "NOMAD_PORT_recv" }},
+  "Tag": "{{ env "NOMAD_ADDR_recv" }}",
+  "WriteToDisk": @RECEIVER_WRITE_TO_DISK@,
+  "ReceiveToDiskThresholdMB":50,
+  "WriteToDb": true,
+  "LogLevel" : "debug"
+  }
diff --git a/tests/automatic/settings/receiver.json.tpl.lin.in b/tests/automatic/settings/receiver_tcp.json.tpl.lin.in
similarity index 89%
rename from tests/automatic/settings/receiver.json.tpl.lin.in
rename to tests/automatic/settings/receiver_tcp.json.tpl.lin.in
index 1177861e12ba54dcf0e0a0e0c4c21cb30a079283..4414e4692d60a7f9180b0781f73a8889d9215b33 100644
--- a/tests/automatic/settings/receiver.json.tpl.lin.in
+++ b/tests/automatic/settings/receiver_tcp.json.tpl.lin.in
@@ -6,7 +6,8 @@
   "DataServer": {
     "AdvertiseURI": "127.0.0.1:{{ env "NOMAD_PORT_recv_ds" }}",
     "NThreads": 2,
-    "ListenPort": {{ env "NOMAD_PORT_recv_ds" }}
+    "ListenPort": {{ env "NOMAD_PORT_recv_ds" }},
+    "NetworkMode": ["tcp"]
   },
   "DataCache": {
     "Use": @RECEIVER_USE_CACHE@,
diff --git a/tests/automatic/settings/receiver.json.tpl.win.in b/tests/automatic/settings/receiver_tcp.json.tpl.win.in
similarity index 89%
rename from tests/automatic/settings/receiver.json.tpl.win.in
rename to tests/automatic/settings/receiver_tcp.json.tpl.win.in
index 02fdd657bff47c4f8988b677e57092917e5db1e9..b2afbf0d4a22b17512ff7e7e09ad70c001fe29aa 100644
--- a/tests/automatic/settings/receiver.json.tpl.win.in
+++ b/tests/automatic/settings/receiver_tcp.json.tpl.win.in
@@ -9,7 +9,8 @@
   "DataServer": {
     "AdvertiseURI": "127.0.0.1:{{ env "NOMAD_PORT_recv_ds" }}",
     "NThreads": 2,
-    "ListenPort": {{ env "NOMAD_PORT_recv_ds" }}
+    "ListenPort": {{ env "NOMAD_PORT_recv_ds" }},
+    "NetworkMode": ["tcp"]
   },
   "DataCache": {
     "Use": @RECEIVER_USE_CACHE@,