diff --git a/test/mocks/datafilecollector-testharness/auto-test/.gitignore b/test/mocks/datafilecollector-testharness/auto-test/.gitignore
index 2a21cc0..83c64de 100644
--- a/test/mocks/datafilecollector-testharness/auto-test/.gitignore
+++ b/test/mocks/datafilecollector-testharness/auto-test/.gitignore
@@ -1,2 +1,2 @@
 logs
-.tmp_tcsuite_*
+.tmp_*
diff --git a/test/mocks/datafilecollector-testharness/auto-test/25h_backlog_1MB_FTPS.sh b/test/mocks/datafilecollector-testharness/auto-test/25h_backlog_1MB_FTPS.sh
new file mode 100755
index 0000000..76afc8c
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/auto-test/25h_backlog_1MB_FTPS.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+TC_ONELINE_DESCR="Simulating a 25h backlog of events for 700 PNF with decreasing number of missing files, then continues with 15 min events from all PNFs using FTPS."
+
+. ../common/testcase_common.sh $1 $2
+
+#### TEST BEGIN ####
+
+clean_containers
+
+export MR_TC="--tc1500"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
+export NUM_FTPFILES="300"
+export NUM_PNFS="700"
+export FILE_SIZE="1MB"
+export FTP_TYPE="FTPS"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
+
+log_sim_settings
+
+start_simulators
+
+
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                    0 60
+dr_equal            ctr_published_files             0 60
+
+mr_print            tc_info
+dr_print            tc_info
+drr_print           tc_info
+
+start_dfc 0
+
+mr_equal            ctr_unique_files                70000 18000
+
+mr_print            stop
+
+dr_equal            ctr_published_files             70000 900
+
+sleep_wait          30
+
+dr_equal            ctr_published_files             70000
+
+mr_equal            ctr_events                      70700
+mr_equal            ctr_unique_files                70000
+mr_equal            ctr_unique_PNFs                 700
+
+check_dfc_logs
+
+#### TEST COMPLETE ####
+
+store_logs          END
+
+print_result
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/auto-test/25h_backlog_1MB_SFTP.sh b/test/mocks/datafilecollector-testharness/auto-test/25h_backlog_1MB_SFTP.sh
new file mode 100755
index 0000000..2722182
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/auto-test/25h_backlog_1MB_SFTP.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+TC_ONELINE_DESCR="Simulating a 25h backlog of events for 700 PNF with decreasing number of missing files, then continues with 15 min events from all PNFs using SFTP"
+
+. ../common/testcase_common.sh $1 $2
+
+#### TEST BEGIN ####
+
+clean_containers
+
+export MR_TC="--tc1500"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
+export NUM_FTPFILES="300"
+export NUM_PNFS="700"
+export FILE_SIZE="1MB"
+export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
+
+log_sim_settings
+
+start_simulators
+
+
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                    0 60
+dr_equal            ctr_published_files             0 60
+
+mr_print            tc_info
+dr_print            tc_info
+drr_print           tc_info
+
+start_dfc 0
+
+mr_equal            ctr_unique_files                70000 18000
+
+mr_print            stop
+
+dr_equal            ctr_published_files             70000 900
+
+sleep_wait          30
+
+dr_equal            ctr_published_files             70000
+
+mr_equal            ctr_events                      70700
+mr_equal            ctr_unique_files                70000
+mr_equal            ctr_unique_PNFs                 700
+
+check_dfc_logs
+
+#### TEST COMPLETE ####
+
+store_logs          END
+
+print_result
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/auto-test/AllTestCasesSuite.sh b/test/mocks/datafilecollector-testharness/auto-test/AllTestCasesSuite.sh
new file mode 100755
index 0000000..512e5e4
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/auto-test/AllTestCasesSuite.sh
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+TS_ONELINE_DESCR="All test cases suite (excluding 24 h max test and 72 stab test)"
+
+. ../common/testsuite_common.sh
+
+suite_setup
+
+############# TEST CASES #################
+
+run_tc FTC1.sh $1 $2
+run_tc FTC2.sh $1 $2
+run_tc FTC3.sh $1 $2
+run_tc FTC4.sh $1 $2
+run_tc FTC5.sh $1 $2
+run_tc FTC6.sh $1 $2
+
+run_tc FTC10.sh $1 $2
+run_tc FTC11.sh $1 $2
+run_tc FTC12.sh $1 $2
+run_tc FTC13.sh $1 $2
+run_tc FTC14.sh $1 $2
+run_tc FTC15.sh $1 $2
+
+run_tc FTC20.sh $1 $2
+run_tc FTC21.sh $1 $2
+
+run_tc FTC30.sh $1 $2
+run_tc FTC31.sh $1 $2
+run_tc FTC32.sh $1 $2
+run_tc FTC33.sh $1 $2
+
+run_tc FTC40.sh $1 $2
+
+run_tc FTC50.sh $1 $2
+
+run_tc FTC60.sh $1 $2
+run_tc FTC61.sh $1 $2
+
+run_tc FTC70.sh $1 $2
+run_tc FTC71.sh $1 $2
+
+run_tc FTC80.sh $1 $2
+run_tc FTC81.sh $1 $2
+
+run_tc FTC90.sh $1 $2
+
+run_tc FTC100.sh $1 $2
+
+run_tc FTC200.sh $1 $2
+run_tc FTC210.sh $1 $2
+run_tc FTC220.sh $1 $2
+
+
+
+
+##########################################
+
+suite_complete
diff --git a/test/mocks/datafilecollector-testharness/auto-test/AutoTestTest.sh b/test/mocks/datafilecollector-testharness/auto-test/AutoTestTest.sh
new file mode 100755
index 0000000..462a7dd
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/auto-test/AutoTestTest.sh
@@ -0,0 +1,467 @@
+#!/bin/bash
+
+TC_ONELINE_DESCR="Test script for auto test and simulator control"
+
+. ../common/testcase_common.sh $1 $2
+
+#### TEST BEGIN ####
+
+clean_containers
+
+export MR_TC="--tc1000"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES:CTR_MEAS_FILES,OpenDcae-c13:CTR_MEAS_FILES,OpenDcae-c14:LOG_FILES,OpenDcae-c15:PM_MEAS_FILES:TEST_FILES,OpenDcae-c16:TEST_FILES:TEMP_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A,CTR_MEAS_FILES:B,LOG_FILES:C,TEST_FILES:D,TEMP_FILES:E"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="1:A,2:B,3:C,4:D,5:E"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="1:A,2:B,3:C,4:D,5:E"
+
+export NUM_FTPFILES="300"
+export NUM_PNFS="5"
+export FILE_SIZE="1MB"
+export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A,B,C,D,E"
+export NUM_FTP_SERVERS=5
+
+
+
+log_sim_settings
+
+start_simulators
+
+consul_config_app   0 "../simulator-group/consul/c12_feed1_PM_feed2_CTR.json"
+consul_config_dmaap 0 "../simulator-group/consul/dmaap_feed1_2_3_4_5.json"
+
+consul_config_app   1 "../simulator-group/consul/c13_feed2_CTR.json"
+consul_config_dmaap 1 "../simulator-group/consul/dmaap_feed1_2_3_4_5.json"
+
+consul_config_app   2 "../simulator-group/consul/c14_feed3_LOG.json"
+consul_config_dmaap 2 "../simulator-group/consul/dmaap_feed1_2_3_4_5.json"
+
+consul_config_app   3 "../simulator-group/consul/c15_feed1_PM_feed4_TEST.json"
+consul_config_dmaap 3 "../simulator-group/consul/dmaap_feed1_2_3_4_5.json"
+
+consul_config_app   2 "../simulator-group/consul/c16_feed4_TEST_feed5_TEMP.json"
+consul_config_dmaap 4 "../simulator-group/consul/dmaap_feed1_2_3_4_5.json"
+
+
+mr_print			""
+mr_print			groups
+mr_print			changeids
+mr_print			fileprefixes
+mr_print			tc_info
+mr_print			status
+mr_print			stop
+mr_print			start
+
+mr_print			ctr_requests
+mr_print			groups/ctr_requests
+mr_print			ctr_requests/OpenDcae-c12
+mr_print			ctr_requests/OpenDcae-c13
+mr_print			ctr_requests/OpenDcae-c14
+mr_print			ctr_requests/OpenDcae-c15
+mr_print			ctr_requests/OpenDcae-c16
+
+mr_print			ctr_responses
+mr_print			groups/ctr_responses
+mr_print			ctr_responses/OpenDcae-c12
+mr_print			ctr_responses/OpenDcae-c13
+mr_print			ctr_responses/OpenDcae-c14
+mr_print			ctr_responses/OpenDcae-c15
+mr_print			ctr_responses/OpenDcae-c16
+
+mr_print			ctr_files
+mr_print			groups/ctr_files
+mr_print			ctr_files/OpenDcae-c12
+mr_print			ctr_files/OpenDcae-c13
+mr_print			ctr_files/OpenDcae-c14
+mr_print			ctr_files/OpenDcae-c15
+mr_print			ctr_files/OpenDcae-c16
+
+mr_print			ctr_unique_files
+mr_print			groups/ctr_unique_files
+mr_print			ctr_unique_files/OpenDcae-c12
+mr_print			ctr_unique_files/OpenDcae-c13
+mr_print			ctr_unique_files/OpenDcae-c14
+mr_print			ctr_unique_files/OpenDcae-c15
+mr_print			ctr_unique_files/OpenDcae-c16
+
+mr_print			ctr_events
+mr_print			groups/ctr_events
+mr_print			ctr_events/OpenDcae-c12
+mr_print			ctr_events/OpenDcae-c13
+mr_print			ctr_events/OpenDcae-c14
+mr_print			ctr_events/OpenDcae-c15
+mr_print			ctr_events/OpenDcae-c16
+
+mr_contain_str		groups						"OpenDcae-c12,OpenDcae-c13,OpenDcae-c14,OpenDcae-c15,OpenDcae-c16"
+mr_contain_str		changeids					"PM_MEAS_FILES:CTR_MEAS_FILES,CTR_MEAS_FILES,LOG_FILES,PM_MEAS_FILES:TEST_FILES,TEST_FILES:TEMP_FILES"
+mr_contain_str		fileprefixes				$MR_FILE_PREFIX_MAPPING
+mr_contain_str		tc_info						"TC#1000"
+mr_contain_str		status						"Started"
+mr_contain_str		stop						"Stopped"
+mr_contain_str		start						"Started"
+
+mr_equal			ctr_requests				0
+mr_contain_str		groups/ctr_requests			"0,0,0,0,0"
+mr_equal			ctr_requests/OpenDcae-c12	0
+mr_equal			ctr_requests/OpenDcae-c13	0
+mr_equal			ctr_requests/OpenDcae-c14	0
+mr_equal			ctr_requests/OpenDcae-c15	0
+mr_equal			ctr_requests/OpenDcae-c16	0
+
+mr_equal			ctr_responses				0
+mr_contain_str		groups/ctr_responses		"0,0,0,0,0"
+mr_equal			ctr_responses/OpenDcae-c12	0
+mr_equal			ctr_responses/OpenDcae-c13	0
+mr_equal			ctr_responses/OpenDcae-c14	0
+mr_equal			ctr_responses/OpenDcae-c15	0
+mr_equal			ctr_responses/OpenDcae-c16	0
+
+mr_equal			ctr_files					0
+mr_contain_str		groups/ctr_files			"0,0,0,0,0"
+mr_equal			ctr_files/OpenDcae-c12		0
+mr_equal			ctr_files/OpenDcae-c13		0
+mr_equal			ctr_files/OpenDcae-c14		0
+mr_equal			ctr_files/OpenDcae-c15		0
+mr_equal			ctr_files/OpenDcae-c16		0
+
+mr_equal			ctr_unique_files				0
+mr_contain_str		groups/ctr_unique_files			"0,0,0,0,0"
+mr_equal			ctr_unique_files/OpenDcae-c12	0
+mr_equal			ctr_unique_files/OpenDcae-c13	0
+mr_equal			ctr_unique_files/OpenDcae-c14	0
+mr_equal			ctr_unique_files/OpenDcae-c15	0
+mr_equal			ctr_unique_files/OpenDcae-c16	0
+
+mr_equal			ctr_events						0
+mr_contain_str		groups/ctr_events				"0,0,0,0,0"
+mr_equal			ctr_events/OpenDcae-c12			0
+mr_equal			ctr_events/OpenDcae-c13			0
+mr_equal			ctr_events/OpenDcae-c14			0
+mr_equal			ctr_events/OpenDcae-c15			0
+mr_equal			ctr_events/OpenDcae-c16			0
+
+
+dr_print			""
+dr_print 			tc_info
+dr_print 			execution_time
+dr_print 			feeds
+
+dr_print			ctr_publish_query
+dr_print			feeds/ctr_publish_query
+dr_print 			ctr_publish_query/1
+dr_print 			ctr_publish_query/2
+dr_print 			ctr_publish_query/3
+dr_print 			ctr_publish_query/4
+dr_print			ctr_publish_query/5
+
+dr_print			ctr_publish_query_published
+dr_print			feeds/ctr_publish_query_published
+dr_print			ctr_publish_query_published/1
+dr_print			ctr_publish_query_published/2
+dr_print			ctr_publish_query_published/3
+dr_print			ctr_publish_query_published/4
+dr_print			ctr_publish_query_published/5
+
+dr_print			ctr_publish_query_not_published
+dr_print			feeds/ctr_publish_query_not_published
+dr_print			ctr_publish_query_not_published/1
+dr_print			ctr_publish_query_not_published/2
+dr_print			ctr_publish_query_not_published/3
+dr_print			ctr_publish_query_not_published/4
+dr_print			ctr_publish_query_not_published/5
+
+dr_print			ctr_publish_req
+dr_print			feeds/ctr_publish_req
+dr_print			ctr_publish_req/1
+dr_print			ctr_publish_req/2
+dr_print			ctr_publish_req/3
+dr_print			ctr_publish_req/4
+dr_print			ctr_publish_req/5
+
+dr_print			ctr_publish_req_redirect
+dr_print			feeds/ctr_publish_req_redirect
+dr_print			ctr_publish_req_redirect/1
+dr_print			ctr_publish_req_redirect/2
+dr_print			ctr_publish_req_redirect/3
+dr_print			ctr_publish_req_redirect/4
+dr_print			ctr_publish_req_redirect/5
+
+dr_print			ctr_publish_req_published
+dr_print			feeds/ctr_publish_req_published
+dr_print			ctr_publish_req_published/1
+dr_print			ctr_publish_req_published/2
+dr_print			ctr_publish_req_published/3
+dr_print			ctr_publish_req_published/4
+dr_print			ctr_publish_req_published/5
+
+dr_print			ctr_published_files
+dr_print			feeds/ctr_published_files
+dr_print			ctr_published_files/1
+dr_print			ctr_published_files/2
+dr_print			ctr_published_files/3
+dr_print			ctr_published_files/4
+dr_print			ctr_published_files/5
+
+dr_print			ctr_double_publish
+dr_print			feeds/ctr_double_publish
+dr_print			ctr_double_publish/1
+dr_print			ctr_double_publish/2
+dr_print			ctr_double_publish/3
+dr_print			ctr_double_publish/4
+dr_print			ctr_double_publish/5
+
+dr_print			ctr_publish_query_bad_file_prefix
+dr_print			feeds/ctr_publish_query_bad_file_prefix
+dr_print			ctr_publish_query_bad_file_prefix/1
+dr_print			ctr_publish_query_bad_file_prefix/2
+dr_print			ctr_publish_query_bad_file_prefix/3
+dr_print			ctr_publish_query_bad_file_prefix/4
+dr_print			ctr_publish_query_bad_file_prefix/5
+
+dr_print			ctr_publish_req_bad_file_prefix
+dr_print			feeds/ctr_publish_req_bad_file_prefix
+dr_print			ctr_publish_req_bad_file_prefix/1
+dr_print			ctr_publish_req_bad_file_prefix/2
+dr_print			ctr_publish_req_bad_file_prefix/3
+dr_print			ctr_publish_req_bad_file_prefix/4
+dr_print			ctr_publish_req_bad_file_prefix/5
+
+
+
+
+
+
+dr_contain_str 		tc_info										"normal"
+dr_contain_str 		execution_time								"0:"
+dr_contain_str 		feeds										"1:A,2:B,3:C,4:D,5:E"
+
+dr_equal			ctr_publish_query							0
+dr_contain_str		feeds/ctr_publish_query						"0,0,0,0,0"
+dr_equal 			ctr_publish_query/1							0
+dr_equal 			ctr_publish_query/2							0
+dr_equal 			ctr_publish_query/3							0
+dr_equal 			ctr_publish_query/4							0
+dr_equal			ctr_publish_query/5							0
+
+dr_equal			ctr_publish_query_published					0
+dr_contain_str		feeds/ctr_publish_query_published			"0,0,0,0,0"
+dr_equal			ctr_publish_query_published/1				0
+dr_equal			ctr_publish_query_published/2				0
+dr_equal			ctr_publish_query_published/3				0
+dr_equal			ctr_publish_query_published/4				0
+dr_equal			ctr_publish_query_published/5				0
+
+dr_equal			ctr_publish_query_not_published				0
+dr_contain_str		feeds/ctr_publish_query_not_published		"0,0,0,0,0"
+dr_equal			ctr_publish_query_not_published/1			0
+dr_equal			ctr_publish_query_not_published/2			0
+dr_equal			ctr_publish_query_not_published/3			0
+dr_equal			ctr_publish_query_not_published/4			0
+dr_equal			ctr_publish_query_not_published/5			0
+
+dr_equal			ctr_publish_req								0
+dr_contain_str		feeds/ctr_publish_req						"0,0,0,0,0"
+dr_equal			ctr_publish_req/1							0
+dr_equal			ctr_publish_req/2							0
+dr_equal			ctr_publish_req/3							0
+dr_equal			ctr_publish_req/4							0
+dr_equal			ctr_publish_req/5							0
+
+dr_equal			ctr_publish_req_redirect					0
+dr_contain_str		feeds/ctr_publish_req_redirect				"0,0,0,0,0"
+dr_equal			ctr_publish_req_redirect/1					0
+dr_equal			ctr_publish_req_redirect/2					0
+dr_equal			ctr_publish_req_redirect/3					0
+dr_equal			ctr_publish_req_redirect/4					0
+dr_equal			ctr_publish_req_redirect/5					0
+
+dr_equal			ctr_publish_req_published					0
+dr_contain_str		feeds/ctr_publish_req_published				"0,0,0,0,0"
+dr_equal			ctr_publish_req_published/1					0
+dr_equal			ctr_publish_req_published/2					0
+dr_equal			ctr_publish_req_published/3					0
+dr_equal			ctr_publish_req_published/4					0
+dr_equal			ctr_publish_req_published/5					0
+
+dr_equal			ctr_published_files							0
+dr_contain_str		feeds/ctr_published_files					"0,0,0,0,0"
+dr_equal			ctr_published_files/1						0
+dr_equal			ctr_published_files/2						0
+dr_equal			ctr_published_files/3						0
+dr_equal			ctr_published_files/4						0
+dr_equal			ctr_published_files/5						0
+
+dr_equal			ctr_double_publish							0
+dr_contain_str		feeds/ctr_double_publish					"0,0,0,0,0"
+dr_equal			ctr_double_publish/1						0
+dr_equal			ctr_double_publish/2						0
+dr_equal			ctr_double_publish/3						0
+dr_equal			ctr_double_publish/4						0
+dr_equal			ctr_double_publish/5						0
+
+dr_equal			ctr_publish_query_bad_file_prefix			0
+dr_contain_str		feeds/ctr_publish_query_bad_file_prefix		"0,0,0,0,0"
+dr_equal			ctr_publish_query_bad_file_prefix/1			0
+dr_equal			ctr_publish_query_bad_file_prefix/2			0
+dr_equal			ctr_publish_query_bad_file_prefix/3			0
+dr_equal			ctr_publish_query_bad_file_prefix/4			0
+dr_equal			ctr_publish_query_bad_file_prefix/5			0
+
+dr_equal			ctr_publish_req_bad_file_prefix				0
+dr_contain_str		feeds/ctr_publish_req_bad_file_prefix		"0,0,0,0,0"
+dr_equal			ctr_publish_req_bad_file_prefix/1			0
+dr_equal			ctr_publish_req_bad_file_prefix/2			0
+dr_equal			ctr_publish_req_bad_file_prefix/3			0
+dr_equal			ctr_publish_req_bad_file_prefix/4			0
+dr_equal			ctr_publish_req_bad_file_prefix/5			0
+
+drr_print			""
+drr_print			tc_info
+drr_print			execution_time
+drr_print			feeds
+drr_print			speed
+
+drr_print			ctr_publish_requests
+drr_print			feeds/ctr_publish_requests
+drr_print			ctr_publish_requests/1
+drr_print			ctr_publish_requests/2
+drr_print			ctr_publish_requests/3
+drr_print			ctr_publish_requests/4
+drr_print			ctr_publish_requests/5
+
+drr_print			ctr_publish_requests_bad_file_prefix
+drr_print			feeds/ctr_publish_requests_bad_file_prefix
+drr_print			ctr_publish_requests_bad_file_prefix/1
+drr_print			ctr_publish_requests_bad_file_prefix/2
+drr_print			ctr_publish_requests_bad_file_prefix/3
+drr_print			ctr_publish_requests_bad_file_prefix/4
+drr_print			ctr_publish_requests_bad_file_prefix/5
+
+drr_print			ctr_publish_responses
+drr_print			feeds/ctr_publish_responses
+drr_print			ctr_publish_responses/1
+drr_print			ctr_publish_responses/2
+drr_print			ctr_publish_responses/3
+drr_print			ctr_publish_responses/4
+drr_print			ctr_publish_responses/5
+
+drr_print			time_lastpublish
+drr_print			feeds/time_lastpublish
+drr_print			time_lastpublish/1
+drr_print			time_lastpublish/2
+drr_print			time_lastpublish/3
+drr_print			time_lastpublish/4
+drr_print			time_lastpublish/5
+
+drr_print			dwl_volume
+drr_print			feeds/dwl_volume
+drr_print			dwl_volume/1
+drr_print			dwl_volume/2
+drr_print			dwl_volume/3
+drr_print			dwl_volume/4
+drr_print			dwl_volume/5
+
+
+drr_contain_str		tc_info										"normal"
+drr_contain_str		execution_time								"0:"
+drr_contain_str		feeds										"1:A,2:B,3:C,4:D,5:E"
+drr_equal			speed										0
+
+drr_equal			ctr_publish_requests						0
+drr_contain_str		feeds/ctr_publish_requests					"0,0,0,0,0"
+drr_equal			ctr_publish_requests/1						0
+drr_equal			ctr_publish_requests/2						0
+drr_equal			ctr_publish_requests/3						0
+drr_equal			ctr_publish_requests/4						0
+drr_equal			ctr_publish_requests/5						0
+
+drr_equal			ctr_publish_requests_bad_file_prefix		0
+drr_contain_str		feeds/ctr_publish_requests_bad_file_prefix	"0,0,0,0,0"
+drr_equal			ctr_publish_requests_bad_file_prefix/1		0
+drr_equal			ctr_publish_requests_bad_file_prefix/2		0
+drr_equal			ctr_publish_requests_bad_file_prefix/3		0
+drr_equal			ctr_publish_requests_bad_file_prefix/4		0
+drr_equal			ctr_publish_requests_bad_file_prefix/5		0
+
+drr_equal			ctr_publish_responses						0
+drr_contain_str		feeds/ctr_publish_responses					"0,0,0,0,0"
+drr_equal			ctr_publish_responses/1						0
+drr_equal			ctr_publish_responses/2						0
+drr_equal			ctr_publish_responses/3						0
+drr_equal			ctr_publish_responses/4						0
+drr_equal			ctr_publish_responses/5						0
+
+drr_contain_str		time_lastpublish							"--:--"
+drr_contain_str		feeds/time_lastpublish						"--:--,--:--,--:--,--:--,--:--"
+drr_contain_str		time_lastpublish/1							"--:--"
+drr_contain_str		time_lastpublish/2							"--:--"
+drr_contain_str		time_lastpublish/3							"--:--"
+drr_contain_str		time_lastpublish/4							"--:--"
+drr_contain_str		time_lastpublish/5							"--:--"
+
+drr_equal			dwl_volume									0
+drr_contain_str		feeds/dwl_volume							"0,0,0,0,0"
+drr_equal			dwl_volume/1								0
+drr_equal			dwl_volume/2								0
+drr_equal			dwl_volume/3								0
+drr_equal			dwl_volume/4								0
+drr_equal			dwl_volume/5								0
+
+
+
+
+
+
+
+
+
+
+dr_equal            ctr_published_files             0 60
+
+mr_print            tc_info
+dr_print            tc_info
+drr_print           tc_info
+
+start_dfc 0
+start_dfc 1
+start_dfc 2
+start_dfc 3
+start_dfc 4
+
+dr_equal            ctr_published_files             1 60
+
+sleep_wait          30
+
+dr_equal            ctr_published_files             1
+
+mr_greater          ctr_requests                    1
+
+mr_equal            ctr_events                      1
+mr_equal            ctr_unique_files                1
+mr_equal            ctr_unique_PNFs                 1
+
+dr_equal            ctr_publish_query               1
+dr_equal            ctr_publish_query_published     0
+dr_equal            ctr_publish_query_not_published 1
+dr_equal            ctr_publish_req                 1
+dr_equal            ctr_publish_req_redirect        1
+dr_equal            ctr_publish_req_published       0
+dr_equal            ctr_published_files             1
+dr_equal            ctr_double_publish              0
+
+drr_equal           ctr_publish_requests            1
+drr_equal           ctr_publish_responses           1
+
+drr_equal           dwl_volume                      1000000
+
+check_dfc_logs
+
+#### TEST COMPLETE ####
+
+store_logs          END
+
+print_result
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/auto-test/DFC_FileRetentionSuite.sh b/test/mocks/datafilecollector-testharness/auto-test/DFC_FileRetentionSuite.sh
index 219e9c5..ccdcdf1 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/DFC_FileRetentionSuite.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/DFC_FileRetentionSuite.sh
@@ -16,4 +16,3 @@
 ##########################################
 
 suite_complete
-
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC1.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC1.sh
index b6685a9..fe6d453 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC1.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC1.sh
@@ -8,55 +8,69 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc100"
-export BC_TC=""
-export NUM_FTPFILES="1"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
+export NUM_FTPFILES="10"
 export NUM_PNFS="1"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             1 60
+dr_equal            ctr_published_files                  1 60
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             1
+dr_equal            ctr_published_files                  1
 
-mr_greater          ctr_requests                    1
+mr_greater          ctr_requests                         1
 
-mr_equal            ctr_events                      1
-mr_equal            ctr_unique_files                1
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           1
+mr_equal            ctr_unique_files                     1
+mr_equal            ctr_unique_PNFs                      1
 
-dr_equal            ctr_publish_query               1
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 1
-dr_equal            ctr_publish_req                 1
-dr_equal            ctr_publish_req_redirect        1
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             1
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    1
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      1
+dr_equal            ctr_publish_req                      1
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             1
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  1
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            1
-drr_equal           ctr_publish_responses           1
+drr_equal           ctr_publish_requests                 1
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                1
 
-drr_equal           dwl_volume                      1000000
+drr_equal           dwl_volume                           1000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC10.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC10.sh
index 65c585a..918906f 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC10.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC10.sh
@@ -8,55 +8,69 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc510"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="5"
 export NUM_PNFS="700"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             3500 900
+dr_equal            ctr_published_files                  3500 900
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             3500
+dr_equal            ctr_published_files                  3500
 
-mr_greater          ctr_requests                    5
+mr_greater          ctr_requests                         5
 
-mr_equal            ctr_events                      3500
-mr_equal            ctr_unique_files                3500
-mr_equal            ctr_unique_PNFs                 700
+mr_equal            ctr_events                           3500
+mr_equal            ctr_unique_files                     3500
+mr_equal            ctr_unique_PNFs                      700
 
-dr_equal            ctr_publish_query               3500
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 3500
-dr_equal            ctr_publish_req                 3500
-dr_equal            ctr_publish_req_redirect        3500
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             3500
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    3500
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      3500
+dr_equal            ctr_publish_req                      3500
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             3500
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  3500
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            3500
-drr_equal           ctr_publish_responses           3500
+drr_equal           ctr_publish_requests                 3500
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                3500
 
-drr_equal           dwl_volume                      3500000000
+drr_equal           dwl_volume                           3500000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC100.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC100.sh
new file mode 100755
index 0000000..77477a8
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC100.sh
@@ -0,0 +1,81 @@
+#!/bin/bash
+
+TC_ONELINE_DESCR="100 event with 1 1MB file in each evewnt from one PNF in one event using SFTP with feed reconfigure"
+
+. ../common/testcase_common.sh $1 $2
+
+#### TEST BEGIN ####
+
+clean_containers
+
+export MR_TC="--tc110"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
+export NUM_FTPFILES="200"
+export NUM_PNFS="1"
+export FILE_SIZE="1MB"
+export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
+
+log_sim_settings
+
+start_simulators
+
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
+
+mr_print            tc_info
+dr_print            tc_info
+drr_print           tc_info
+
+dr_contain_str      feeds "2:A"
+drr_contain_str     feeds "2:A"
+
+start_dfc           0
+
+dr_equal            ctr_published_files                  50 900
+
+
+export DR_TC="--tc normal"
+export DR_FEEDS="1:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="1:A"
+
+consul_config_app   0                                    "../simulator-group/consul/c12_feed1_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed1.json"
+
+kill_dr
+kill_drr
+
+log_sim_settings
+
+start_simulators
+
+mr_equal            ctr_events                           100 900
+mr_equal            ctr_unique_files                     100
+mr_equal            ctr_unique_PNFs                      1
+
+dr_greater          ctr_published_files                  1
+
+dr_contain_str      feeds "1:A"
+drr_contain_str     feeds "1:A"
+
+check_dfc_logs
+
+#### TEST COMPLETE ####
+
+store_logs          END
+
+print_result
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC11.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC11.sh
index 0d91ec7..d6560a3 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC11.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC11.sh
@@ -8,55 +8,69 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc610"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="5"
 export NUM_PNFS="700"
 export FILE_SIZE="1MB"
 export FTP_TYPE="FTPS"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             3500 900
+dr_equal            ctr_published_files                  3500 900
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             3500
+dr_equal            ctr_published_files                  3500
 
-mr_greater          ctr_requests                    5
+mr_greater          ctr_requests                         5
 
-mr_equal            ctr_events                      3500
-mr_equal            ctr_unique_files                3500
-mr_equal            ctr_unique_PNFs                 700
+mr_equal            ctr_events                           3500
+mr_equal            ctr_unique_files                     3500
+mr_equal            ctr_unique_PNFs                      700
 
-dr_equal            ctr_publish_query               3500
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 3500
-dr_equal            ctr_publish_req                 3500
-dr_equal            ctr_publish_req_redirect        3500
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             3500
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    3500
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      3500
+dr_equal            ctr_publish_req                      3500
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             3500
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  3500
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            3500
-drr_equal           ctr_publish_responses           3500
+drr_equal           ctr_publish_requests                 3500
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                3500
 
-drr_equal           dwl_volume                      3500000000
+drr_equal           dwl_volume                           3500000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC12.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC12.sh
index d721fe1..adafb2f 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC12.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC12.sh
@@ -8,55 +8,69 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc511"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="5"
 export NUM_PNFS="700"
 export FILE_SIZE="1KB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             3500 900
+dr_equal            ctr_published_files                  3500 900
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             3500
+dr_equal            ctr_published_files                  3500
 
-mr_greater          ctr_requests                    5
+mr_greater          ctr_requests                         5
 
-mr_equal            ctr_events                      3500
-mr_equal            ctr_unique_files                3500
-mr_equal            ctr_unique_PNFs                 700
+mr_equal            ctr_events                           3500
+mr_equal            ctr_unique_files                     3500
+mr_equal            ctr_unique_PNFs                      700
 
-dr_equal            ctr_publish_query               3500
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 3500
-dr_equal            ctr_publish_req                 3500
-dr_equal            ctr_publish_req_redirect        3500
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             3500
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    3500
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      3500
+dr_equal            ctr_publish_req                      3500
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             3500
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  3500
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            3500
-drr_equal           ctr_publish_responses           3500
+drr_equal           ctr_publish_requests                 3500
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                3500
 
-drr_equal           dwl_volume                      3500000
+drr_equal           dwl_volume                           3500000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC13.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC13.sh
index 5cf2112..12e9ddc 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC13.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC13.sh
@@ -8,55 +8,69 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc611"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="5"
 export NUM_PNFS="700"
 export FILE_SIZE="1KB"
 export FTP_TYPE="FTPS"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             3500 900
+dr_equal            ctr_published_files                  3500 900
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             3500
+dr_equal            ctr_published_files                  3500
 
-mr_greater          ctr_requests                    5
+mr_greater          ctr_requests                         5
 
-mr_equal            ctr_events                      3500
-mr_equal            ctr_unique_files                3500
-mr_equal            ctr_unique_PNFs                 700
+mr_equal            ctr_events                           3500
+mr_equal            ctr_unique_files                     3500
+mr_equal            ctr_unique_PNFs                      700
 
-dr_equal            ctr_publish_query               3500
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 3500
-dr_equal            ctr_publish_req                 3500
-dr_equal            ctr_publish_req_redirect        3500
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             3500
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    3500
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      3500
+dr_equal            ctr_publish_req                      3500
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             3500
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  3500
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            3500
-drr_equal           ctr_publish_responses           3500
+drr_equal           ctr_publish_requests                 3500
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                3500
 
-drr_equal           dwl_volume                      3500000
+drr_equal           dwl_volume                           3500000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC14.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC14.sh
new file mode 100755
index 0000000..27d51f6
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC14.sh
@@ -0,0 +1,79 @@
+#!/bin/bash
+
+TC_ONELINE_DESCR="3500 50MB files from 700 PNFs in 3500 events in 5 polls using SFTP, from poll to publish."
+
+. ../common/testcase_common.sh $1 $2
+
+#### TEST BEGIN ####
+
+clean_containers
+
+export MR_TC="--tc550"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
+export NUM_FTPFILES="5"
+export NUM_PNFS="700"
+export FILE_SIZE="50MB"
+export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
+
+log_sim_settings
+
+start_simulators
+
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
+
+mr_print            tc_info
+dr_print            tc_info
+drr_print           tc_info
+
+start_dfc           0
+
+dr_equal            ctr_published_files                  3500 3600
+
+sleep_wait          30
+
+dr_equal            ctr_published_files                  3500
+
+mr_greater          ctr_requests                         5
+
+mr_equal            ctr_events                           3500
+mr_equal            ctr_unique_files                     3500
+mr_equal            ctr_unique_PNFs                      700
+
+dr_equal            ctr_publish_query                    3500
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      3500
+dr_equal            ctr_publish_req                      3500
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             3500
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  3500
+dr_equal            ctr_double_publish                   0
+
+drr_equal           ctr_publish_requests                 3500
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                3500
+
+drr_equal           dwl_volume                           175000000000
+
+check_dfc_logs
+
+#### TEST COMPLETE ####
+
+store_logs          END
+
+print_result
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC15.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC15.sh
new file mode 100755
index 0000000..060f3c3
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC15.sh
@@ -0,0 +1,79 @@
+#!/bin/bash
+
+TC_ONELINE_DESCR="3500 50MB files from 700 PNFs in 3500 events in 5 polls using FTPS, from poll to publish."
+
+. ../common/testcase_common.sh $1 $2
+
+#### TEST BEGIN ####
+
+clean_containers
+
+export MR_TC="--tc650"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
+export NUM_FTPFILES="5"
+export NUM_PNFS="700"
+export FILE_SIZE="50MB"
+export FTP_TYPE="FTPS"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
+
+log_sim_settings
+
+start_simulators
+
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
+
+mr_print            tc_info
+dr_print            tc_info
+drr_print           tc_info
+
+start_dfc           0
+
+dr_equal            ctr_published_files                  3500 3600
+
+sleep_wait          30
+
+dr_equal            ctr_published_files                  3500
+
+mr_greater          ctr_requests                         5
+
+mr_equal            ctr_events                           3500
+mr_equal            ctr_unique_files                     3500
+mr_equal            ctr_unique_PNFs                      700
+
+dr_equal            ctr_publish_query                    3500
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      3500
+dr_equal            ctr_publish_req                      3500
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             3500
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  3500
+dr_equal            ctr_double_publish                   0
+
+drr_equal           ctr_publish_requests                 3500
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                3500
+
+drr_equal           dwl_volume                           175000000000
+
+check_dfc_logs
+
+#### TEST COMPLETE ####
+
+store_logs          END
+
+print_result
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC2.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC2.sh
index 45ecb6f..e46c0f2 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC2.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC2.sh
@@ -8,55 +8,69 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc101"
-export BC_TC=""
-export NUM_FTPFILES="1"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
+export NUM_FTPFILES="10"
 export NUM_PNFS="1"
 export FILE_SIZE="5MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             1 60
+dr_equal            ctr_published_files                  1 60
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             1
+dr_equal            ctr_published_files                  1
 
-mr_greater          ctr_requests                    1
+mr_greater          ctr_requests                         1
 
-mr_equal            ctr_events                      1
-mr_equal            ctr_unique_files                1
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           1
+mr_equal            ctr_unique_files                     1
+mr_equal            ctr_unique_PNFs                      1
 
-dr_equal            ctr_publish_query               1
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 1
-dr_equal            ctr_publish_req                 1
-dr_equal            ctr_publish_req_redirect        1
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             1
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    1
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      1
+dr_equal            ctr_publish_req                      1
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             1
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  1
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            1
-drr_equal           ctr_publish_responses           1
+drr_equal           ctr_publish_requests                 1
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                1
 
-drr_equal           dwl_volume                      5000000
+drr_equal           dwl_volume                           5000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC20.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC20.sh
index 88d9e57..a61b1a4 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC20.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC20.sh
@@ -8,55 +8,69 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc710"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="105"
 export NUM_PNFS="700"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             72800 18000
+dr_equal            ctr_published_files                  72800 18000
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             72800
+dr_equal            ctr_published_files                  72800
 
-mr_greater          ctr_requests                    100
+mr_greater          ctr_requests                         100
 
-mr_equal            ctr_events                      3500
-mr_equal            ctr_unique_files                72800
-mr_equal            ctr_unique_PNFs                 700
+mr_equal            ctr_events                           3500
+mr_equal            ctr_unique_files                     72800
+mr_equal            ctr_unique_PNFs                      700
 
-dr_equal            ctr_publish_query               72800
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 72800
-dr_equal            ctr_publish_req                 72800
-dr_equal            ctr_publish_req_redirect        72800
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             72800
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    72800
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      72800
+dr_equal            ctr_publish_req                      72800
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             72800
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  72800
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            72800
-drr_equal           ctr_publish_responses           72800
+drr_equal           ctr_publish_requests                 72800
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                72800
 
-drr_equal           dwl_volume                      72800000000
+drr_equal           dwl_volume                           72800000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC200.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC200.sh
index 7cb07de..8060ddf 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC200.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC200.sh
@@ -8,86 +8,101 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc100"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export BC_TC=""
 export NUM_FTPFILES="1"
 export NUM_PNFS="1"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             1 60
+dr_equal            ctr_published_files                  1 60
 
-dfc_contain_str     heartbeat                       "I'm living!"
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
-dfc_contain_str     heartbeat                       "I'm living"
-dfc_contain_str     start                           "Datafile Service has been started!"
-dfc_contain_str     start                           "Datafile Service is still running!"
-dfc_contain_str     heartbeat                       "I'm living"
+dfc_contain_str     0                                    heartbeat    "I'm living!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
+dfc_contain_str     0                                    heartbeat    "I'm living"
+dfc_contain_str     0                                    start        "Datafile Service has been started!"
+dfc_contain_str     0                                    start        "Datafile Service is still running!"
+dfc_contain_str     0                                    heartbeat    "I'm living"
 
 
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
-dfc_contain_str     start                           "Datafile Service has been started!"
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
-dfc_contain_str     start                           "Datafile Service has been started!"
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
-dfc_contain_str     start                           "Datafile Service has been started!"
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
-dfc_contain_str     start                           "Datafile Service has been started!"
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
-dfc_contain_str     start                           "Datafile Service has been started!"
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
-dfc_contain_str     start                           "Datafile Service has been started!"
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
-dfc_contain_str     start                           "Datafile Service has been started!"
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
-dfc_contain_str     start                           "Datafile Service has been started!"
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
-dfc_contain_str     start                           "Datafile Service has been started!"
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
-dfc_contain_str     start                           "Datafile Service has been started!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
+dfc_contain_str     0                                    start        "Datafile Service has been started!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
+dfc_contain_str     0                                    start        "Datafile Service has been started!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
+dfc_contain_str     0                                    start        "Datafile Service has been started!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
+dfc_contain_str     0                                    start        "Datafile Service has been started!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
+dfc_contain_str     0                                    start        "Datafile Service has been started!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
+dfc_contain_str     0                                    start        "Datafile Service has been started!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
+dfc_contain_str     0                                    start        "Datafile Service has been started!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
+dfc_contain_str     0                                    start        "Datafile Service has been started!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
+dfc_contain_str     0                                    start        "Datafile Service has been started!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
+dfc_contain_str     0                                    start        "Datafile Service has been started!"
 
 
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             1
+dr_equal            ctr_published_files                  1
 
-mr_greater          ctr_requests                    1
+mr_greater          ctr_requests                         1
 
-mr_equal            ctr_events                      1
-mr_equal            ctr_unique_files                1
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           1
+mr_equal            ctr_unique_files                     1
+mr_equal            ctr_unique_PNFs                      1
 
-dr_equal            ctr_publish_query               1
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 1
-dr_equal            ctr_publish_req                 1
-dr_equal            ctr_publish_req_redirect        1
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             1
+dr_equal            ctr_publish_query                    1
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      1
+dr_equal            ctr_publish_req                      1
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             1
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  1
 
-drr_equal           ctr_publish_requests            1
-drr_equal           ctr_publish_responses           1
+drr_equal           ctr_publish_requests                 1
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                1
 
-drr_equal           dwl_volume                      1000000
+drr_equal           dwl_volume                           1000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC21.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC21.sh
index a3c0514..fb18d76 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC21.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC21.sh
@@ -8,55 +8,69 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc810"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="105"
 export NUM_PNFS="700"
 export FILE_SIZE="1MB"
 export FTP_TYPE="FTPS"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             72800 18000
+dr_equal            ctr_published_files                  72800 18000
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             72800
+dr_equal            ctr_published_files                  72800
 
-mr_greater          ctr_requests                    100
+mr_greater          ctr_requests                         100
 
-mr_equal            ctr_events                      3500
-mr_equal            ctr_unique_files                72800
-mr_equal            ctr_unique_PNFs                 700
+mr_equal            ctr_events                           3500
+mr_equal            ctr_unique_files                     72800
+mr_equal            ctr_unique_PNFs                      700
 
-dr_equal            ctr_publish_query               72800
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 72800
-dr_equal            ctr_publish_req                 72800
-dr_equal            ctr_publish_req_redirect        72800
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             72800
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    72800
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      72800
+dr_equal            ctr_publish_req                      72800
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             72800
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  72800
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            72800
-drr_equal           ctr_publish_responses           72800
+drr_equal           ctr_publish_requests                 72800
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                72800
 
-drr_equal           dwl_volume                      72800000000
+drr_equal           dwl_volume                           72800000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC210.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC210.sh
index f7e9bf5..46fff9d 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC210.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC210.sh
@@ -8,71 +8,85 @@
 
 clean_containers
 
+export MR_TC="--tc1300"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
 export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
 export DR_REDIR_TC="--tc normal"
-export MR_TC="--tc113"
-export BC_TC=""
-export NUM_FTPFILES="199"
-export NUM_PNFS="1"
+export DR_REDIR_FEEDS="2:A"
+
+export NUM_FTPFILES="200"
+export NUM_PNFS="700"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-mr_greater          ctr_events                      0 120
-dr_print            ctr_published_files
+mr_equal            ctr_events                           35 120
 
+dfc_contain_str     0                                    heartbeat    "I'm living!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
 
-dfc_contain_str     heartbeat                       "I'm living!"
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
+dr_equal            ctr_published_files                  3500 900
 
 sleep_wait          120
 
-dfc_contain_str     start                           "Datafile Service has been started!"
+dfc_contain_str     0                                    start        "Datafile Service has been started!"
 
-dr_greater          ctr_published_files             100 60
-dr_less             ctr_published_files             199
-dr_print            ctr_published_files
+mr_equal            ctr_events                           70 120
 
-dfc_contain_str     heartbeat                       "I'm living!"
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
+dfc_contain_str     0                                    heartbeat    "I'm living!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
+
+dr_equal            ctr_published_files                  7000 900
 
 sleep_wait          120
 
-dfc_contain_str     start                           "Datafile Service has been started!"
+dfc_contain_str     0                                    start        "Datafile Service has been started!"
 
-dr_equal            ctr_published_files             199 60
+dr_equal            ctr_published_files                  7000
 
 
-mr_equal            ctr_events                      100
-mr_equal            ctr_unique_files                199
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           70
+mr_equal            ctr_unique_files                     7000
+mr_equal            ctr_unique_PNFs                      70
 
-dr_equal            ctr_publish_query               199
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 199
-dr_equal            ctr_publish_req                 199
-dr_equal            ctr_publish_req_redirect        199
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             199
+dr_equal            ctr_publish_query                    7000
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      7000
+dr_equal            ctr_publish_req                      7000
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             7000
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  7000
 
-drr_equal           ctr_publish_requests            199
-drr_equal           ctr_publish_responses           199
+drr_equal           ctr_publish_requests                 7000
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                7000
 
-drr_equal           dwl_volume                      199000000
+drr_equal           dwl_volume                           7000000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC220.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC220.sh
index a652f85..08222d2 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC220.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC220.sh
@@ -8,60 +8,74 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc100"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="1"
 export NUM_PNFS="1"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 30
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 30
 
 kill_mr
 
-start_dfc
+start_dfc           0
 
 sleep_wait          30
 
-dfc_contain_str     stopDatafile                    "Datafile Service has already been stopped!"
+dfc_contain_str     0                                    stopDatafile "Datafile Service has already been stopped!"
 
 start_simulators
 
 sleep_wait          120
 
-mr_less             ctr_requests                    2
+mr_equal            ctr_requests                         0
 
-dfc_contain_str     start                           "Datafile Service has been started!"
+dfc_contain_str     0                                    start        "Datafile Service has been started!"
 
-dr_equal            ctr_published_files             1 60
+dr_equal            ctr_published_files                  1 60
 
-mr_greater          ctr_requests                    0
+mr_greater          ctr_requests                         0
 
-mr_equal            ctr_events                      1
-mr_equal            ctr_unique_files                1
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           1
+mr_equal            ctr_unique_files                     1
+mr_equal            ctr_unique_PNFs                      1
 
-dr_equal            ctr_publish_query               1
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 1
-dr_equal            ctr_publish_req                 1
-dr_equal            ctr_publish_req_redirect        1
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             1
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    1
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      1
+dr_equal            ctr_publish_req                      1
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             1
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  1
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            1
-drr_equal           ctr_publish_responses           1
+drr_equal           ctr_publish_requests                 1
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                1
 
-drr_equal           dwl_volume                      1000000
+drr_equal           dwl_volume                           1000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC3.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC3.sh
index afa1f2a..06baaef 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC3.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC3.sh
@@ -8,55 +8,69 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc102"
-export BC_TC=""
-export NUM_FTPFILES="1"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
+export NUM_FTPFILES="10"
 export NUM_PNFS="1"
 export FILE_SIZE="50MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             1 60
+dr_equal            ctr_published_files                  1 60
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             1
+dr_equal            ctr_published_files                  1
 
-mr_greater          ctr_requests                    1
+mr_greater          ctr_requests                         1
 
-mr_equal            ctr_events                      1
-mr_equal            ctr_unique_files                1
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           1
+mr_equal            ctr_unique_files                     1
+mr_equal            ctr_unique_PNFs                      1
 
-dr_equal            ctr_publish_query               1
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 1
-dr_equal            ctr_publish_req                 1
-dr_equal            ctr_publish_req_redirect        1
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             1
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    1
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      1
+dr_equal            ctr_publish_req                      1
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             1
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  1
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            1
-drr_equal           ctr_publish_responses           1
+drr_equal           ctr_publish_requests                 1
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                1
 
-drr_equal           dwl_volume                      50000000
+drr_equal           dwl_volume                           50000000
 
-check_dfc_log
+check_dfc_logs
 
 
 #### TEST COMPLETE ####
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC30.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC30.sh
index 0fb3b05..e29d948 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC30.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC30.sh
@@ -8,84 +8,97 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc100"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="1"
 export NUM_PNFS="1"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             1 60
+dr_equal            ctr_published_files                  1 60
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             1
+dr_equal            ctr_published_files                  1
 
 
-mr_equal            ctr_events                      1
-mr_equal            ctr_unique_files                1
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           1
+mr_equal            ctr_unique_files                     1
+mr_equal            ctr_unique_PNFs                      1
 
-dr_equal            ctr_publish_query               1
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 1
-dr_equal            ctr_publish_req                 1
-dr_equal            ctr_publish_req_redirect        1
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             1
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    1
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      1
+dr_equal            ctr_publish_req                      1
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             1
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  1
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            1
-drr_equal           ctr_publish_responses           1
+drr_equal           ctr_publish_requests                 1
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                1
 
-drr_equal           dwl_volume                      1000000
+drr_equal           dwl_volume                           1000000
 
-check_dfc_log
+check_dfc_logs
 
 store_logs          PART1
 
+mr_greater          ctr_requests                         4 120
 
 kill_mr
 start_simulators
 
-mr_equal            ctr_events                      0 60
-mr_equal            ctr_unique_files                0
-mr_equal            ctr_unique_PNFs                 0
+mr_equal            ctr_requests                         4 120
 
-mr_equal            ctr_events                      1 60
-mr_equal            ctr_unique_files                1
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           1
+mr_equal            ctr_unique_files                     1
+mr_equal            ctr_unique_PNFs                      1
 
-dr_equal            ctr_publish_query               1
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 1
-dr_equal            ctr_publish_req                 1
-dr_equal            ctr_publish_req_redirect        1
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             1
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    1
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      1
+dr_equal            ctr_publish_req                      1
+dr_equal            ctr_publish_req_redirect             1
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  1
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            1
-drr_equal           ctr_publish_responses           1
+drr_equal           ctr_publish_requests                 1
+drr_equal           ctr_publish_responses                1
 
-drr_equal           dwl_volume                      1000000
+drr_equal           dwl_volume                           1000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC31.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC31.sh
index 34cf8ae..ad71d30 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC31.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC31.sh
@@ -8,66 +8,80 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc100"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="1"
 export NUM_PNFS="1"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             1 60
+dr_equal            ctr_published_files                  1 60
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             1
+dr_equal            ctr_published_files                  1
 
 
-mr_equal            ctr_events                      1
-mr_equal            ctr_unique_files                1
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           1
+mr_equal            ctr_unique_files                     1
+mr_equal            ctr_unique_PNFs                      1
 
-dr_equal            ctr_publish_query               1
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 1
-dr_equal            ctr_publish_req                 1
-dr_equal            ctr_publish_req_redirect        1
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             1
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    1
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      1
+dr_equal            ctr_publish_req                      1
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             1
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  1
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            1
-drr_equal           ctr_publish_responses           1
+drr_equal           ctr_publish_requests                 1
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                1
 
-drr_equal           dwl_volume                      1000000
+drr_equal           dwl_volume                           1000000
 
-check_dfc_log
+check_dfc_logs
 
 store_logs          PART1
 
 kill_mr
-kill_dfc
+kill_dfc           0
 start_simulators
 
 mr_equal            ctr_events                      0 60
 mr_equal            ctr_unique_files                0
 mr_equal            ctr_unique_PNFs                 0
 
-start_dfc
+start_dfc           0
 
 sleep_wait          30
 
@@ -89,7 +103,7 @@
 
 drr_equal           dwl_volume                      1000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC32.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC32.sh
index 48257a8..3d60835 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC32.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC32.sh
@@ -8,54 +8,68 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc122"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="200"
 export NUM_PNFS="1"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-mr_equal            ctr_events                      100 1800
+mr_equal            ctr_events                           100 1800
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             1
+dr_equal            ctr_published_files                  1
 
 
-mr_equal            ctr_events                      100
-mr_equal            ctr_unique_files                1
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           100
+mr_equal            ctr_unique_files                     1
+mr_equal            ctr_unique_PNFs                      1
 
-dr_equal            ctr_publish_query               1
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 1
-dr_equal            ctr_publish_req                 1
-dr_equal            ctr_publish_req_redirect        1
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             1
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    1
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      1
+dr_equal            ctr_publish_req                      1
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             1
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  1
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            1
-drr_equal           ctr_publish_responses           1
+drr_equal           ctr_publish_requests                 1
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                1
 
-drr_equal           dwl_volume                      1000000
+drr_equal           dwl_volume                           1000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC33.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC33.sh
index a45ce10..1b1ae45 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC33.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC33.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-TC_ONELINE_DESCR="DFC file retention (files with SFTP and then same files overSFTP). 1MB, 5MB and 50MB using first SFTP and thenSFTP with restart of MR between each file."
+TC_ONELINE_DESCR="DFC file retention (files with SFTP and then same files over FTPS). 1MB, 5MB and 50MB using first SFTP and thenSFTP with restart of MR between each file."
 
 . ../common/testcase_common.sh $1 $2
 
@@ -8,28 +8,39 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc100"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="1"
 export NUM_PNFS="1"
 export FILE_SIZE="ALL"
 export FTP_TYPE="ALL"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 
-start_dfc
+start_dfc           0
 
-mr_equal            ctr_events                      1 60
-mr_contain_str      tc_info                         "TC#100"
-dr_equal            ctr_published_files             1 30
+mr_equal            ctr_events                           1 60
+mr_contain_str      tc_info                              "TC#100"
+dr_equal            ctr_published_files                  1 30
 
 
 kill_mr
@@ -38,9 +49,9 @@
 start_simulators
 
 mr_print            tc_info
-mr_equal            ctr_events                      1 60
-mr_contain_str      tc_info                         "TC#101"
-dr_equal            ctr_published_files             2 30
+mr_equal            ctr_events                           1 60
+mr_contain_str      tc_info                              "TC#101"
+dr_equal            ctr_published_files                  2 30
 
 kill_mr
 export MR_TC="--tc102"
@@ -48,9 +59,9 @@
 start_simulators
 
 mr_print            tc_info
-mr_equal            ctr_events                      1 60
-mr_contain_str      tc_info                         "TC#102"
-dr_equal            ctr_published_files             3 30
+mr_equal            ctr_events                           1 60
+mr_contain_str      tc_info                              "TC#102"
+dr_equal            ctr_published_files                  3 30
 
 kill_mr
 export MR_TC="--tc200"
@@ -58,9 +69,9 @@
 start_simulators
 
 mr_print            tc_info
-mr_equal            ctr_events                      1 60
-mr_contain_str      tc_info                         "TC#200"
-dr_equal            ctr_published_files             3 30
+mr_equal            ctr_events                           1 60
+mr_contain_str      tc_info                              "TC#200"
+dr_equal            ctr_published_files                  3 30
 
 kill_mr
 export MR_TC="--tc201"
@@ -68,9 +79,9 @@
 
 
 mr_print            tc_info
-mr_equal            ctr_events                      1 60
-mr_contain_str      tc_info                         "TC#201"
-dr_equal            ctr_published_files             3 30
+mr_equal            ctr_events                           1 60
+mr_contain_str      tc_info                              "TC#201"
+dr_equal            ctr_published_files                  3 30
 
 kill_mr
 export MR_TC="--tc202"
@@ -78,26 +89,29 @@
 
 
 mr_print            tc_info
-mr_equal            ctr_events                      1 60
-mr_contain_str      tc_info                         "TC#202"
-dr_equal            ctr_published_files             3 30
+mr_equal            ctr_events                           1 60
+mr_contain_str      tc_info                              "TC#202"
+dr_equal            ctr_published_files                  3 30
 
 
-dr_equal            ctr_publish_query               3
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 3
-dr_equal            ctr_publish_req                 3
-dr_equal            ctr_publish_req_redirect        3
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             3
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    3
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      3
+dr_equal            ctr_publish_req                      3
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             3
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  3
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            3
-drr_equal           ctr_publish_responses           3
+drr_equal           ctr_publish_requests                 3
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                3
 
-drr_equal           dwl_volume                      56000000
+drr_equal           dwl_volume                           56000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC4.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC4.sh
index a29b6b1..bb3d2ba 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC4.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC4.sh
@@ -8,55 +8,69 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc200"
-export BC_TC=""
-export NUM_FTPFILES="1"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="1:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="1:A"
+
+export NUM_FTPFILES="10"
 export NUM_PNFS="1"
 export FILE_SIZE="1MB"
 export FTP_TYPE="FTPS"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed1_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed1.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             1 60
+dr_equal            ctr_published_files                  1 60
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             1
+dr_equal            ctr_published_files                  1
 
-mr_greater          ctr_requests                    1
+mr_greater          ctr_requests                         1
 
-mr_equal            ctr_events                      1
-mr_equal            ctr_unique_files                1
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           1
+mr_equal            ctr_unique_files                     1
+mr_equal            ctr_unique_PNFs                      1
 
-dr_equal            ctr_publish_query               1
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 1
-dr_equal            ctr_publish_req                 1
-dr_equal            ctr_publish_req_redirect        1
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             1
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    1
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      1
+dr_equal            ctr_publish_req                      1
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             1
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  1
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            1
-drr_equal           ctr_publish_responses           1
+drr_equal           ctr_publish_requests                 1
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                1
 
-drr_equal           dwl_volume                      1000000
+drr_equal           dwl_volume                           1000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC40.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC40.sh
index 074f290..25e68e7 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC40.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC40.sh
@@ -8,28 +8,39 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc100"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="1"
 export NUM_PNFS="1"
 export FILE_SIZE="ALL"
 export FTP_TYPE="ALL"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 
-start_dfc
+start_dfc           0
 
-mr_equal            ctr_events                      1 60
-mr_contain_str      tc_info                         "TC#100"
-dr_equal            ctr_published_files             1 30
+mr_equal            ctr_events                           1 60
+mr_contain_str      tc_info                              "TC#100"
+dr_equal            ctr_published_files                  1 30
 
 
 kill_mr
@@ -38,9 +49,9 @@
 start_simulators
 
 mr_print            tc_info
-mr_equal            ctr_events                      1 60
-mr_contain_str      tc_info                         "TC#101"
-dr_equal            ctr_published_files             2 30
+mr_equal            ctr_events                           1 60
+mr_contain_str      tc_info                              "TC#101"
+dr_equal            ctr_published_files                  2 30
 
 kill_mr
 export MR_TC="--tc102"
@@ -48,9 +59,9 @@
 start_simulators
 
 mr_print            tc_info
-mr_equal            ctr_events                      1 60
-mr_contain_str      tc_info                         "TC#102"
-dr_equal            ctr_published_files             3 30
+mr_equal            ctr_events                           1 60
+mr_contain_str      tc_info                              "TC#102"
+dr_equal            ctr_published_files                  3 30
 
 kill_mr
 export MR_TC="--tc200"
@@ -58,9 +69,9 @@
 start_simulators
 
 mr_print            tc_info
-mr_equal            ctr_events                      1 60
-mr_contain_str      tc_info                         "TC#200"
-dr_equal            ctr_published_files             3 30
+mr_equal            ctr_events                           1 60
+mr_contain_str      tc_info                              "TC#200"
+dr_equal            ctr_published_files                  3 30
 
 kill_mr
 export MR_TC="--tc201"
@@ -68,9 +79,9 @@
 
 
 mr_print            tc_info
-mr_equal            ctr_events                      1 60
-mr_contain_str      tc_info                         "TC#201"
-dr_equal            ctr_published_files             3 30
+mr_equal            ctr_events                           1 60
+mr_contain_str      tc_info                              "TC#201"
+dr_equal            ctr_published_files                  3 30
 
 kill_mr
 export MR_TC="--tc202"
@@ -78,26 +89,29 @@
 
 
 mr_print            tc_info
-mr_equal            ctr_events                      1 60
-mr_contain_str      tc_info                         "TC#202"
-dr_equal            ctr_published_files             3 30
+mr_equal            ctr_events                           1 60
+mr_contain_str      tc_info                              "TC#202"
+dr_equal            ctr_published_files                  3 30
 
 
-dr_equal            ctr_publish_query               3
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 3
-dr_equal            ctr_publish_req                 3
-dr_equal            ctr_publish_req_redirect        3
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             3
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    3
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      3
+dr_equal            ctr_publish_req                      3
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             3
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  3
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            3
-drr_equal           ctr_publish_responses           3
+drr_equal           ctr_publish_requests                 3
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                3
 
-drr_equal           dwl_volume                      56000000
+drr_equal           dwl_volume                           56000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC5.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC5.sh
index f62b85a..f599621 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC5.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC5.sh
@@ -8,55 +8,69 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc201"
-export BC_TC=""
-export NUM_FTPFILES="1"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="1:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="1:A"
+
+export NUM_FTPFILES="10"
 export NUM_PNFS="1"
 export FILE_SIZE="5MB"
 export FTP_TYPE="FTPS"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed1_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed1.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             1 60
+dr_equal            ctr_published_files                  1 60
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             1
+dr_equal            ctr_published_files                  1
 
-mr_greater          ctr_requests                    1
+mr_greater          ctr_requests                         1
 
-mr_equal            ctr_events                      1
-mr_equal            ctr_unique_files                1
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           1
+mr_equal            ctr_unique_files                     1
+mr_equal            ctr_unique_PNFs                      1
 
-dr_equal            ctr_publish_query               1
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 1
-dr_equal            ctr_publish_req                 1
-dr_equal            ctr_publish_req_redirect        1
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             1
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    1
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      1
+dr_equal            ctr_publish_req                      1
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             1
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  1
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            1
-drr_equal           ctr_publish_responses           1
+drr_equal           ctr_publish_requests                 1
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                1
 
-drr_equal           dwl_volume                      5000000
+drr_equal           dwl_volume                           5000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC50.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC50.sh
index 0eb9722..7e6288b 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC50.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC50.sh
@@ -8,53 +8,67 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc121"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="199"
 export NUM_PNFS="1"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             179 5000
+dr_equal            ctr_published_files                  179 5000
 
 sleep_wait          600
 
 
-dr_equal            ctr_published_files             179
+dr_equal            ctr_published_files                  179
 
-mr_equal            ctr_events                      100
-mr_equal            ctr_unique_files                179
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           100
+mr_equal            ctr_unique_files                     179
+mr_equal            ctr_unique_PNFs                      1
 
-dr_greater          ctr_publish_query               179
-dr_equal            ctr_publish_query_published     0
-dr_greater          ctr_publish_query_not_published 179
-dr_equal            ctr_publish_req                 179
-dr_equal            ctr_publish_req_redirect        179
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             179
+dr_greater          ctr_publish_query                    179
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_greater          ctr_publish_query_not_published      179
+dr_equal            ctr_publish_req                      179
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             179
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  179
 
-drr_equal           ctr_publish_requests            179
-drr_equal           ctr_publish_responses           179
+drr_equal           ctr_publish_requests                 179
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                179
 
-drr_equal           dwl_volume                      179000000
+drr_equal           dwl_volume                           179000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC6.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC6.sh
index 036225c..10de5c7 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC6.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC6.sh
@@ -8,55 +8,69 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc202"
-export BC_TC=""
-export NUM_FTPFILES="1"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="1:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="1:A"
+
+export NUM_FTPFILES="10"
 export NUM_PNFS="1"
 export FILE_SIZE="50MB"
 export FTP_TYPE="FTPS"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed1_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed1.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             1 60
+dr_equal            ctr_published_files                  1 60
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             1
+dr_equal            ctr_published_files                  1
 
-mr_greater          ctr_requests                    1
+mr_greater          ctr_requests                         1
 
-mr_equal            ctr_events                      1
-mr_equal            ctr_unique_files                1
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           1
+mr_equal            ctr_unique_files                     1
+mr_equal            ctr_unique_PNFs                      1
 
-dr_equal            ctr_publish_query               1
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 1
-dr_equal            ctr_publish_req                 1
-dr_equal            ctr_publish_req_redirect        1
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             1
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    1
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      1
+dr_equal            ctr_publish_req                      1
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             1
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  1
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            1
-drr_equal           ctr_publish_responses           1
+drr_equal           ctr_publish_requests                 1
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                1
 
-drr_equal           dwl_volume                      50000000
+drr_equal           dwl_volume                           50000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC60.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC60.sh
index f68b9b0..8be18cb 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC60.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC60.sh
@@ -8,61 +8,75 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc500"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="2"
 export NUM_PNFS="700"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_greater          ctr_published_files             100 200
+dr_greater          ctr_published_files                  100 200
 
-kill_sftp
-sleep_wait          10       #Server will be gone longer due to long startup time of ftp (ftp file creatation)
-start_simulators
+stop_sftp           0
+sleep_wait          30
+start_sftp          0
 
-dr_equal            ctr_published_files             1400 400
+dr_equal            ctr_published_files                  1400 400
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             1400
+dr_equal            ctr_published_files                  1400
 
-mr_greater          ctr_requests                    1
+mr_greater          ctr_requests                         1
 
-mr_equal            ctr_events                      700
-mr_equal            ctr_unique_files                1400
-mr_equal            ctr_unique_PNFs                 700
+mr_equal            ctr_events                           700
+mr_equal            ctr_unique_files                     1400
+mr_equal            ctr_unique_PNFs                      700
 
-dr_equal            ctr_publish_query               1400
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 1400
-dr_equal            ctr_publish_req                 1400
-dr_equal            ctr_publish_req_redirect        1400
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             1400
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    1400
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      1400
+dr_equal            ctr_publish_req                      1400
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             1400
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  1400
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            1400
-drr_equal           ctr_publish_responses           1400
+drr_equal           ctr_publish_requests                 1400
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                1400
 
-drr_equal           dwl_volume                      1400000000
+drr_equal           dwl_volume                          1400000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC61.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC61.sh
index ef48047..861e035 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC61.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC61.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-TC_ONELINE_DESCR="Kill FTPs sever for 10+ sec during download"
+TC_ONELINE_DESCR="Kill FTPS sever for 10+ sec during download"
 
 . ../common/testcase_common.sh $1 $2
 
@@ -8,61 +8,75 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc600"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="2"
 export NUM_PNFS="700"
 export FILE_SIZE="1MB"
 export FTP_TYPE="FTPS"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_greater          ctr_published_files             100 200
+dr_greater          ctr_published_files                  100 200
 
-kill_ftps
-sleep_wait          10       #Server will be gone longer due to long startup time of ftp (ftp file creatation)
-start_simulators
+stop_ftps           0
+sleep_wait          30
+start_ftps          0
 
-dr_equal            ctr_published_files             1400 400
+dr_equal            ctr_published_files                  1400 400
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             1400
+dr_equal            ctr_published_files                  1400
 
-mr_greater          ctr_requests                    1
+mr_greater          ctr_requests                         1
 
-mr_equal            ctr_events                      700
-mr_equal            ctr_unique_files                1400
-mr_equal            ctr_unique_PNFs                 700
+mr_equal            ctr_events                           700
+mr_equal            ctr_unique_files                     1400
+mr_equal            ctr_unique_PNFs                      700
 
-dr_equal            ctr_publish_query               1400
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 1400
-dr_equal            ctr_publish_req                 1400
-dr_equal            ctr_publish_req_redirect        1400
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             1400
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    1400
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      1400
+dr_equal            ctr_publish_req                      1400
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             1400
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  1400
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            1400
-drr_equal           ctr_publish_responses           1400
+drr_equal           ctr_publish_requests                 1400
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                1400
 
-drr_equal           dwl_volume                      1400000000
+drr_equal           dwl_volume                           1400000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC70.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC70.sh
index e464d88..0c21b3e 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC70.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC70.sh
@@ -8,55 +8,69 @@
 
 clean_containers
 
-export DR_TC="--tc 10p_error_response"
-export DR_REDIR_TC="--tc 10p_error_response"
 export MR_TC="--tc113"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc 10p_error_response"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc 10p_error_response"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="199"
 export NUM_PNFS="1"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             199 300
+dr_equal            ctr_published_files                  199 300
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             199
+dr_equal            ctr_published_files                  199
 
-mr_greater          ctr_requests                    1
+mr_greater          ctr_requests                         1
 
-mr_equal            ctr_events                      100
-mr_equal            ctr_unique_files                199
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           100
+mr_equal            ctr_unique_files                     199
+mr_equal            ctr_unique_PNFs                      1
 
-dr_equal            ctr_publish_query               199
-dr_equal            ctr_publish_query_published     0
-dr_less             ctr_publish_query_not_published 199
-dr_greater          ctr_publish_req                 199
-dr_greater          ctr_publish_req_redirect        199
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             199
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    199
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_less             ctr_publish_query_not_published      199
+dr_greater          ctr_publish_req                      199
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_greater          ctr_publish_req_redirect             199
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  199
+dr_equal            ctr_double_publish                   0
 
-drr_greater         ctr_publish_requests            199
-drr_equal           ctr_publish_responses           199
+drr_greater         ctr_publish_requests                 199
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_greater         ctr_publish_responses                199
 
-drr_equal           dwl_volume                      199000000
+drr_equal           dwl_volume                           199000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC71.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC71.sh
index 5f4238e..c69958d 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/FTC71.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC71.sh
@@ -8,55 +8,69 @@
 
 clean_containers
 
-export DR_TC="--tc all_delay_10s"
-export DR_REDIR_TC="--tc all_delay_10s"
 export MR_TC="--tc113"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc all_delay_10s"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc all_delay_10s"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="199"
 export NUM_PNFS="1"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=1
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-dr_equal            ctr_published_files             199 300
+dr_equal            ctr_published_files                  199 300
 
 sleep_wait          30
 
-dr_equal            ctr_published_files             199
+dr_equal            ctr_published_files                  199
 
-mr_greater          ctr_requests                    1
+mr_greater          ctr_requests                         1
 
-mr_equal            ctr_events                      100
-mr_equal            ctr_unique_files                199
-mr_equal            ctr_unique_PNFs                 1
+mr_equal            ctr_events                           100
+mr_equal            ctr_unique_files                     199
+mr_equal            ctr_unique_PNFs                      1
 
-dr_equal            ctr_publish_query               199
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published 199
-dr_equal            ctr_publish_req                 199
-dr_equal            ctr_publish_req_redirect        199
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             199
-dr_equal            ctr_double_publish              0
+dr_equal            ctr_publish_query                    199
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      199
+dr_equal            ctr_publish_req                      199
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             199
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  199
+dr_equal            ctr_double_publish                   0
 
-drr_equal         ctr_publish_requests            199
-drr_equal           ctr_publish_responses           199
+drr_equal           ctr_publish_requests                 199
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                199
 
-drr_equal           dwl_volume                      199000000
+drr_equal           dwl_volume                           199000000
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC80.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC80.sh
new file mode 100755
index 0000000..134c87c
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC80.sh
@@ -0,0 +1,100 @@
+#!/bin/bash
+
+TC_ONELINE_DESCR="25 events for each 4 feeds with 100 1MB files per event from one PNF using SFTP, 1 change id with no feed, 1 change with one feed and two change id to one feed."
+
+. ../common/testcase_common.sh $1 $2
+
+#### TEST BEGIN ####
+
+clean_containers
+
+export MR_TC="--tc111"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES:CTR_MEAS_FILES:LOG_FILES:TEMP_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A,CTR_MEAS_FILES:B,LOG_FILES:C,TEMP_FILES:D"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:B,3:C:D"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:B,3:C:D"
+
+export NUM_FTPFILES="200"
+export NUM_PNFS="1"
+export FILE_SIZE="1MB"
+export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A,B,C,D"
+export NUM_FTP_SERVERS=1
+
+log_sim_settings
+
+start_simulators
+
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_CTR_feed3_LOG_TEMP.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed1_2_3_4.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
+
+mr_print            tc_info
+dr_print            tc_info
+drr_print           tc_info
+
+start_dfc           0
+
+dr_equal            ctr_published_files                  588 2000
+dr_equal            ctr_published_files/2                196
+dr_equal            ctr_published_files/3                392
+sleep_wait          30
+
+dr_equal            ctr_published_files                  588
+dr_equal            ctr_published_files/2                196
+dr_equal            ctr_published_files/3                392
+
+mr_greater          ctr_requests                         100
+
+mr_equal            ctr_events                           100
+mr_equal            ctr_unique_files                     784
+mr_equal            ctr_unique_PNFs                      1
+
+dr_equal            ctr_publish_query                    588
+dr_equal            ctr_publish_query/2                  196
+dr_equal            ctr_publish_query/3                  392
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      588
+dr_equal            ctr_publish_query_not_published/2    196
+dr_equal            ctr_publish_query_not_published/3    392
+dr_equal            ctr_publish_req                      588
+dr_equal            ctr_publish_req/2                    196
+dr_equal            ctr_publish_req/3                    392
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             588
+dr_equal            ctr_publish_req_redirect/2           196
+dr_equal            ctr_publish_req_redirect/3           392
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  588
+dr_equal            ctr_published_files/2                196
+dr_equal            ctr_published_files/3                392
+dr_equal            ctr_double_publish                   0
+
+drr_equal           ctr_publish_requests                 588
+drr_equal           ctr_publish_requests/2               196
+drr_equal           ctr_publish_requests/3               392
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                588
+drr_equal           ctr_publish_responses/2              196
+drr_equal           ctr_publish_responses/3              392
+
+drr_equal           dwl_volume                           588000000
+drr_equal           dwl_volume/2                         196000000
+drr_equal           dwl_volume/3                         392000000
+
+check_dfc_logs
+
+#### TEST COMPLETE ####
+
+print_all
+
+store_logs          END
+
+print_result
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC81.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC81.sh
new file mode 100755
index 0000000..442bdce
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC81.sh
@@ -0,0 +1,88 @@
+#!/bin/bash
+
+TC_ONELINE_DESCR="3500 1MB files from 700 PNFs in 3500 events in 5 polls using SFTP, 3 polls with change ids mapped to feeds and 2 polls not."
+
+. ../common/testcase_common.sh $1 $2
+
+#### TEST BEGIN ####
+
+clean_containers
+
+export MR_TC="--tc510"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES:CTR_MEAS_FILES:LOG_FILES:TEMP_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A,CTR_MEAS_FILES:B,LOG_FILES:C,TEMP_FILES:D"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="3:A:B"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="3:A:B"
+
+export NUM_FTPFILES="30"
+export NUM_PNFS="700"
+export FILE_SIZE="1MB"
+export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A,B,C,D"
+export NUM_FTP_SERVERS=1
+
+log_sim_settings
+
+start_simulators
+
+consul_config_app   0                                    "../simulator-group/consul/c12_feed3_PM_CTR.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed3.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
+
+mr_print            tc_info
+dr_print            tc_info
+drr_print           tc_info
+
+start_dfc           0
+
+dr_equal            ctr_published_files                  2100 900
+dr_equal            ctr_published_files/3                2100
+sleep_wait          30
+
+dr_equal            ctr_published_files                  2100
+dr_equal            ctr_published_files/3                2100
+
+mr_greater          ctr_requests                         5
+
+mr_equal            ctr_events                           3500
+mr_equal            ctr_unique_files                     3500
+mr_equal            ctr_unique_PNFs                      700
+
+dr_equal            ctr_publish_query                    2100
+dr_equal            ctr_publish_query/3                  2100
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      2100
+dr_equal            ctr_publish_query_not_published/3    2100
+dr_equal            ctr_publish_req                      2100
+dr_equal            ctr_publish_req/3                    2100
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             2100
+dr_equal            ctr_publish_req_redirect/3           2100
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  2100
+dr_equal            ctr_published_files/3                2100
+dr_equal            ctr_double_publish                   0
+
+drr_equal           ctr_publish_requests                 2100
+drr_equal           ctr_publish_requests/3               2100
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                2100
+drr_equal           ctr_publish_responses/3              2100
+
+drr_equal           dwl_volume                           2100000000
+drr_equal           dwl_volume/3                         2100000000
+
+check_dfc_logs
+
+#### TEST COMPLETE ####
+
+store_logs          END
+
+print_result
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/auto-test/FTC90.sh b/test/mocks/datafilecollector-testharness/auto-test/FTC90.sh
new file mode 100755
index 0000000..780fbf7
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/auto-test/FTC90.sh
@@ -0,0 +1,100 @@
+#!/bin/bash
+
+TC_ONELINE_DESCR="100 events (1 evt per poll) per DFC with 100 1MB files from one PNF using two DFC (different consumer groups) each publishing using unique change ids/feeds over SFTP."
+
+. ../common/testcase_common.sh $1 $2
+
+#### TEST BEGIN ####
+
+clean_containers
+
+export MR_TC="--tc111"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES:CTR_MEAS_FILES,OpenDcae-c13:PM_MEAS_FILES:CTR_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A,CTR_MEAS_FILES:B"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="1:A,2:B"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="1:A,2:B"
+
+export NUM_FTPFILES="1000"
+export NUM_PNFS="1"
+export FILE_SIZE="1MB"
+export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A,B"
+export NUM_FTP_SERVERS=1
+
+log_sim_settings
+
+start_simulators
+
+consul_config_app   0                                    "../simulator-group/consul/c12_feed1_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed1.json"
+consul_config_app   1                                    "../simulator-group/consul/c13_feed2_CTR.json"
+consul_config_dmaap 1                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
+
+mr_print            tc_info
+dr_print            tc_info
+drr_print           tc_info
+
+start_dfc           0
+start_dfc           1
+
+dr_equal            ctr_published_files                  396 2000
+
+sleep_wait          30
+
+dr_equal            ctr_published_files                  396
+
+mr_greater          ctr_requests                         200
+
+mr_equal            ctr_events                           200
+mr_equal            ctr_unique_files                     792
+mr_equal            ctr_unique_PNFs                      2
+mr_equal            ctr_unique_PNFs/OpenDcae-c12         1
+mr_equal            ctr_unique_PNFs/OpenDcae-c13         1
+
+dr_equal            ctr_publish_query                    396
+dr_equal            ctr_publish_query/1                  198
+dr_equal            ctr_publish_query/2                  198
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      396
+dr_equal            ctr_publish_query_not_published/1    198
+dr_equal            ctr_publish_query_not_published/2    198
+dr_equal            ctr_publish_req                      396
+dr_equal            ctr_publish_req/1                    198
+dr_equal            ctr_publish_req/2                    198
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             396
+dr_equal            ctr_publish_req_redirect/1           198
+dr_equal            ctr_publish_req_redirect/2           198
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  396
+dr_equal            ctr_published_files/1                198
+dr_equal            ctr_published_files/2                198
+dr_equal            ctr_double_publish                   0
+
+drr_equal           ctr_publish_requests                 396
+drr_equal           ctr_publish_requests/1               198
+drr_equal           ctr_publish_requests/2               198
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                396
+drr_equal           ctr_publish_responses/1              198
+drr_equal           ctr_publish_responses/2              198
+
+drr_equal           dwl_volume                           396000000
+drr_equal           dwl_volume/1                         198000000
+drr_equal           dwl_volume/2                         198000000
+
+check_dfc_logs
+
+#### TEST COMPLETE ####
+
+store_logs          END
+
+print_result
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/auto-test/MaxFiles1MB_FTPS_24h.sh b/test/mocks/datafilecollector-testharness/auto-test/MaxFiles1MB_FTPS_24h.sh
index cf4dbdc..4c3fca0 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/MaxFiles1MB_FTPS_24h.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/MaxFiles1MB_FTPS_24h.sh
@@ -8,30 +8,41 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc2200"
-export BC_TC=""
-export NUM_FTPFILES="3500"
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
+export NUM_FTPFILES="4000"
 export NUM_PNFS="700"
 export FILE_SIZE="1MB"
 export FTP_TYPE="FTPS"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
 # 24h MR sim execution time since first poll, should be reached withing 24h +1h margin
-mr_contain_str      exe_time_first_poll             1440: $((60*60*24+3600))
+mr_contain_str      exe_time_first_poll                  1440: $((60*60*24+3600))
 # stop event delivery
 mr_print            stop
 # wait for MR sim values to stabilize
@@ -46,43 +57,47 @@
 TARGET_EVENTS=$((TARGET_FILES/100))
 TARGET_VOLUME=$((TARGET_FILES*1000000))
 
-#Maximum number of configured FTP files, if DFC download more than this then the NUM_FTPSFILES need to be increased.
-MAX_FILES=$((NUM_FTPFILE*NUM_PNFS))
+#Maximum number of configured FTP files, if DFC reach this then the NUM_FTPSFILES need to be increased.
+MAX_FILES=$((NUM_FTPFILES*NUM_PNFS))
 
 #Wait remaining time upto 15 min for DFC to download all consumed events
 sleep_wait          870
 
 #At least the requiment number of file shall be published
-dr_greater          ctr_published_files             $TARGET_REQUIRMENT_FILES
+dr_greater          ctr_published_files                  $TARGET_REQUIRMENT_FILES
 
 #If greater then MAX_FILES then more FTP files need to be configured
-mr_less             ctr_ctr_unique_files            MAX_FILES
+mr_less             ctr_unique_files                     $MAX_FILES
 
 
 #Test that all files from polled events has been downloaded etc
 
-dr_equal            ctr_published_files             $TARGET_FILES
+dr_equal            ctr_published_files                  $TARGET_FILES
 
-mr_equal            ctr_events                      $TARGET_EVENTS
+mr_equal            ctr_events                           $TARGET_EVENTS
 
-mr_equal            ctr_unique_PNFs                 700
+mr_equal            ctr_unique_PNFs                      700
 
-dr_equal            ctr_publish_query               $TARGET_FILES
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published $TARGET_FILES
-dr_equal            ctr_publish_req                 $TARGET_FILES
-dr_equal            ctr_publish_req_redirect        $TARGET_FILES
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             $TARGET_FILES
+dr_equal            ctr_publish_query                    $TARGET_FILES
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      $TARGET_FILES
+dr_equal            ctr_publish_req                      $TARGET_FILES
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             $TARGET_FILES
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  $TARGET_FILES
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            $TARGET_FILES
-drr_equal           ctr_publish_responses           $TARGET_FILES
+drr_equal           ctr_publish_requests                 $TARGET_FILES
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                $TARGET_FILES
 
-drr_equal           dwl_volume                      $TARGET_VOLUME
+drr_equal           dwl_volume                           $TARGET_VOLUME
 
 print_all
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/MaxFiles1MB_SFTP_24h.sh b/test/mocks/datafilecollector-testharness/auto-test/MaxFiles1MB_SFTP_24h.sh
index a50fc16..feae9d5 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/MaxFiles1MB_SFTP_24h.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/MaxFiles1MB_SFTP_24h.sh
@@ -8,30 +8,42 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc1200"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="1500"
 export NUM_PNFS="700"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
 # 24h MR sim execution time since first poll, should be reached withing 24h +1h margion
-mr_contain_str      exe_time_first_poll             1440: $((60*60*24+3600))
+mr_contain_str      exe_time_first_poll                  1440: $((60*60*24+3600))
+
 # stop event delivery
 mr_print            stop
 # wait for MR sim values to stabilize
@@ -46,43 +58,47 @@
 TARGET_EVENTS=$((TARGET_FILES/100))
 TARGET_VOLUME=$((TARGET_FILES*1000000))
 
-#Maximum number of configured FTP files, if DFC download more than this then the NUM_FTPSFILES need to be increased.
-MAX_FILES=$((NUM_FTPFILE*NUM_PNFS))
+#Maximum number of configured FTP files, if DFC reach this then the NUM_FTPSFILES need to be increased.
+MAX_FILES=$((NUM_FTPFILES*NUM_PNFS))
 
 #Wait remaining time upto 15 min for DFC to download all consumed events
 sleep_wait          870
 
 #At least the requiment number of file shall be published
-dr_greater          ctr_published_files             $TARGET_REQUIRMENT_FILES
+dr_greater          ctr_published_files                  $TARGET_REQUIRMENT_FILES
 
 #If greater then MAX_FILES then more FTP files need to be configured
-mr_less             ctr_ctr_unique_files            MAX_FILES
+mr_less             ctr_unique_files                     $MAX_FILES
 
 
 #Test that all files from polled events has been downloaded etc
 
-dr_equal            ctr_published_files             $TARGET_FILES
+dr_equal            ctr_published_files                  $TARGET_FILES
 
-mr_equal            ctr_events                      $TARGET_EVENTS
+mr_equal            ctr_events                           $TARGET_EVENTS
 
-mr_equal            ctr_unique_PNFs                 700
+mr_equal            ctr_unique_PNFs                      700
 
-dr_equal            ctr_publish_query               $TARGET_FILES
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published $TARGET_FILES
-dr_equal            ctr_publish_req                 $TARGET_FILES
-dr_equal            ctr_publish_req_redirect        $TARGET_FILES
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             $TARGET_FILES
+dr_equal            ctr_publish_query                    $TARGET_FILES
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      $TARGET_FILES
+dr_equal            ctr_publish_req                      $TARGET_FILES
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             $TARGET_FILES
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  $TARGET_FILES
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            $TARGET_FILES
-drr_equal           ctr_publish_responses           $TARGET_FILES
+drr_equal           ctr_publish_requests                 $TARGET_FILES
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                $TARGET_FILES
 
-drr_equal           dwl_volume                      $TARGET_VOLUME
+drr_equal           dwl_volume                           $TARGET_VOLUME
 
 print_all
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/README.md b/test/mocks/datafilecollector-testharness/auto-test/README.md
index 09001d0..a94076f 100644
--- a/test/mocks/datafilecollector-testharness/auto-test/README.md
+++ b/test/mocks/datafilecollector-testharness/auto-test/README.md
@@ -8,12 +8,14 @@
 The integration repo is needed as well as docker.
 If needed setup the ``DFC_LOCAL_IMAGE`` and ``DFC_REMOTE_IMAGE`` env var in test_env.sh to point to the dfc images (local registry image or next registry image) without the image tag.
 The predefined images should be ok for current usage:
+
 ``DFC_REMOTE_IMAGE=nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server``
+
 ``DFC_LOCAL_IMAGE=onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server``
 
 If the test cases/suites in this dir are not executed in the auto-test dir in the integration repo, then the ``SIM_GROUP`` env var need to point to the ``simulator-group`` dir. 
-See instructions in the test_env.sh. The ../common dir is needed as well in the case. That is, it is possible to have auto-test dir (and the common dir) somewhere 
-than in the integration repo but the simulator group dir need to be available.
+See instructions in the test_env.sh. The ../common dir is needed as well in the case. That is, it is possible to have auto-test dir (and the common dir) somewhere else
+than in the integration repo but the simulator-group and common dir need to be available.
 
 ##Test cases and test suites naming.
 Each file filename should have the format ``<tc-id>.sh`` for test cases and ``<ts-id>.sh`` for test suite. The tc-id and ts-id are the
@@ -24,15 +26,18 @@
 ##Logs from containers and test cases
 All logs from each test cases are stored under ``logs/<tc-id>/``.
 The logs include the application.log and the container log from dfc, the container logs from each simulator and the test case log (same as the screen output).
-
+In the test cases the logs are stored with a prefix so the logs can be stored at different steps during the test. All test cases contains an entry to save all logs with prefix 'END' at the end of each test case.
 ##Execution##
-Test cases and test suites are executed by: ``./<tc-id or ts-id>.sh local | remote | remote-remove | manual-container | manual-app``</br>
+Test cases and test suites are executed by: `` [sudo] ./<tc-id or ts-id>.sh local | remote | remote-remove | manual-container | manual-app``</br>
 **local** - uses the dfc image pointed out by ``DFC_LOCAL_IMAGE`` in the test_env, should be the dfc image built locally in your docker registry.</br>
 **remote** - uses the dfc image pointed out by ``DFC_REMOTE_IMAGE`` in the test_env, should be the dfc nexus image in your docker registry.</br>
 **remote-remove** - uses the dfc image pointed out by ``DFC_REMOTE_IMAGE`` in the test_env, should be the dfc nexus image in your docker registry. Removes the nexus image and pull from remote registry.</br>
 **manual-container** - uses dfc in a manually started container. The script will prompt you for manual starting and stopping of the container.</br>
 **manual-app** - uses dfc app started as an external process (from eclipse etc). The script will prompt you for manual start and stop of the process.</br>
 
+When running dfc manually, either as a container or an app the ports need to be set to map the instance id of the dfc. Most test cases start dfc with index 0, then the test case expects the ports of dfc to be mapped to the standar port number. 
+However, if a higher instance id than 0 is used then the mapped ports need add that index to the port number (eg, if index 2 is used the dfc need to map port 8102 and 8435 instead of the standard 8100 and 8433).
+
 ##Test case file##
 A test case file contains a number of steps to verify a certain functionality.
 A description of the test case should be given to the ``TC_ONELINE_DESCR`` var. The description will be printed in the test result.
@@ -72,16 +77,22 @@
 Print the env variables needed for the simulators and their setup
 
 **clean_containers**</br>
-Stop and remove all containers including dfc app and simulators
+Stop and remove all containers including dfc apps and simulators
 
-**start_simulators**
+**start_simulators**</br>
 Start all simulators in the simulator group
 
-**start_dfc**</br>
-Start the dfc application
+**start_dfc <dfc-instance-id>**</br>
+Start the dfc application. The arg shall be an integer from 0 to 5 reprenting the dfc instance to start. DFC app will get a name like 'dfc_app0' to 'dfc_app4'.
 
-**kill_dfc**</br>
-Stop and remove the dfc app container
+**kill_dfc  <dfc-instance-id> **</br>
+Stop and remove the dfc app container with the instance id.
+
+**consul_config_app <dfc-instance-id> <json-file-path>**</br>
+Configure consul with json file with app config for a dfc instance using the dfc instance id and the json file.
+
+**consul_config_dmaap <dfc-instance-id> <json-file-path>**</br>
+Configure consul with json file with dmaap config for a dfc instance using the dfc instance id and the json file.
 
 **kill_dr**</br>
 Stop and remove the DR simulator container
@@ -92,11 +103,23 @@
 **kill_mr**</br>
 Stop and remove the MR simulator container
 
-**kill_sftp**</br>
-Stop and remove the SFTP container
+**kill_sftp <sftp-instance-id>**</br>
+Stop and remove a SFTP container with the supplied instance id (0-5).
 
-**kill_ftps**</br>
-Stop and remove the FTPS container
+**stop_sftp <sftp-instance-id>**</br>
+Stop a SFTP container with the supplied instance id (0-5).
+
+**start_sftp <sftp-instance-id>**</br>
+Start a previously stopped SFTP container with the supplied instance id (0-5).
+
+**kill_ftps <ftps-instance-id>**</br>
+Stop and remove a FTPS container with the supplied instance id (0-5).
+
+**stop_ftps <ftps-instance-id>**</br>
+Stop a FTPS container with the supplied instance id (0-5).
+
+**start_ftps <ftps-instance-id>**</br>
+Start a previously stopped FTPS container with the supplied instance id (0-5).
 
 **mr_print <vaiable-name>**</br>
 Print a variable value from the MR simulator.
@@ -107,6 +130,9 @@
 **drr_print <vaiable-name>**</br>
 Print a variable value from the DR redir simulator.
 
+**dfc_print <dfc-instance-id> <vaiable-name>**</br>
+Print a variable value from an dfc instance with the supplied instance id (0-5).
+
 **mr_read <vaiable-name>**</br>
 Read a variable value from MR sim and send to stdout
 
@@ -178,6 +204,14 @@
 before setting pass or fail depending on if the variable value is less than the target
 value or not.
 
+**dr_contain_str <variable-name> <target-value> [<timeout-in-sec>]**</br>
+Tests if a variable value in the DR simulator contains a substring target and and optional timeout.
+</br>Arg: ``<variable-name> <target-value>`` - This test set pass or fail depending on if the variable contains
+the target substring or not.
+</br>Arg: ``<variable-name> <target-value> <timeout-in-sec>``  - This test waits up to the timeout seconds
+before setting pass or fail depending on if the variable value contains the target
+substring or not.
+
 **drr_equal <variable-name> <target-value> [<timeout-in-sec>]**</br>
 Tests if a variable value in the DR Redir simulator is equal to a target value and and optional timeout.
 </br>Arg: ``<variable-name> <target-value>`` - This test set pass or fail depending on if the variable is
@@ -202,6 +236,14 @@
 before setting pass or fail depending on if the variable value is less than the target
 value or not.
 
+**drr_contain_str <variable-name> <target-value> [<timeout-in-sec>]**</br>
+Tests if a variable value in the DR Redir simulator contains a substring target and and optional timeout.
+</br>Arg: ``<variable-name> <target-value>`` - This test set pass or fail depending on if the variable contains
+the target substring or not.
+</br>Arg: ``<variable-name> <target-value> <timeout-in-sec>``  - This test waits up to the timeout seconds
+before setting pass or fail depending on if the variable value contains the target
+substring or not.
+
 **dfc_contain_str <variable-name> <substring-in-quotes>**</br>
 Test is a variable in the DFC contains a substring.
 
@@ -225,7 +267,7 @@
 
 ##Test suite files##
 A test suite file contains one or more test cases to run in sequence.
-A description of the test case should be given to the TS_ONELINE_DESCR var. The description will be printed in the test result.
+A description of the test case should be given to the ``TS_ONELINE_DESCR`` var. The description will be printed in the test result.
 
 The empty template for a test suite files looks like this:
 
@@ -235,7 +277,7 @@
 ```
 #!/bin/bash
 
-TS_ONELINE_DESCR="<test-suite-description"
+TS_ONELINE_DESCR="<test-suite-description>"
 
 . ../common/testsuite_common.sh
 
@@ -257,7 +299,7 @@
 
 The ../common/testsuite_common.sh contains all functions needed for a test suite file.
 
-The following is a list of the available functions in a test case file. Please see a defined test suite for examples.
+The following is a list of the available functions in a test case file. Please see a existing test suite for examples.
 
 **suite_setup**</br>
 Sets up the test suite and print out a heading.
diff --git a/test/mocks/datafilecollector-testharness/auto-test/Stability1MB_FTPS_72h.sh b/test/mocks/datafilecollector-testharness/auto-test/Stability1MB_FTPS_72h.sh
index 2b76f16..f221ac5 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/Stability1MB_FTPS_72h.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/Stability1MB_FTPS_72h.sh
@@ -8,81 +8,100 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc2300"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="1000"
 export NUM_PNFS="700"
 export FILE_SIZE="1MB"
 export FTP_TYPE="FTPS"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-# 24h MR sim execution time since first poll, should be reached withing 72h +1h margion
-mr_contain_str      exe_time_first_poll             4320: $((60*60*24*3+3600))
+# 72h MR sim execution time since first poll, should be reached withing 72h + 1h margin
+mr_contain_str      exe_time_first_poll                  4320: $((60*60*24*3+3600))
+
+# Requirement number of files, 100 new files in first event for each PNF, then 1 new file per PNF in the
+# remaining 15 min polls up to 72h. This is the minimum number of published files for the test
+TARGET_REQUIRMENT_FILES=$((70000+700*95+700*96+700*96))
+
+#Make sure target is reached within 72h + a reasonable tolerance
+mr_greater         ctr_unique_files                      $((TARGET_REQUIRMENT_FILES-1)) 1800
+
 # stop event delivery
 mr_print            stop
 # wait for MR sim values to stabilize
 sleep_wait          30
 
-# Requirement number of files, 100 new files in first event for each PNF, then 1 new file per PNF in the
-# remaining polls up to 24h. This is the minimum number of published files for the test
-TARGET_REQUIRMENT_FILE=$((70000+700*95+700*96+700*96))
-
 #Calculate targets based on the number of of unique files delivered from MR sim
 TARGET_FILES=$(mr_read ctr_unique_files)
-TARGET_EVENTS=$((TARGET_FILES/100))
+TARGET_EVENTS=$((TARGET_FILES-70000+700))  #First event from a PNF is 100 new files, remaining events contains 1 new file
 TARGET_VOLUME=$((TARGET_FILES*1000000))
 
-#Maximum number of configured FTP files, if DFC download more than this then the NUM_FTPSFILES need to be increased.
+#Maximum number of configured FTP files, if DFC reach this then the NUM_FTPSFILES need to be increased.
 MAX_FILES=$((NUM_FTPFILE*NUM_PNFS))
 
 #Wait remaining time upto 15 min for DFC to download all consumed events
 sleep_wait          870
 
 #At least the requiment number of file shall be published
-dr_greater          ctr_published_files             $TARGET_REQUIRMENT_FILE
+dr_greater          ctr_published_files                  $((TARGET_REQUIRMENT_FILES-1))
 
-#If greate then MAX_FILES then more FTP files need to be configured
-mr_less             ctr_ctr_unique_files            MAX_FILES
+#If greater then MAX_FILES then more FTP files need to be configured
+mr_less             ctr_unique_files                     $MAX_FILES
 
 
 #Test that all files from polled events has been downloaded etc
 
-dr_equal            ctr_published_files             $TARGET_FILES
+dr_equal            ctr_published_files                  $TARGET_FILES
 
-mr_equal            ctr_events                      $TARGET_EVENTS
+mr_equal            ctr_events                           $TARGET_EVENTS
 
-mr_equal            ctr_unique_PNFs                 700
+mr_equal            ctr_unique_PNFs                      700
 
-dr_equal            ctr_publish_query               $TARGET_FILES
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published $TARGET_FILES
-dr_equal            ctr_publish_req                 $TARGET_FILES
-dr_equal            ctr_publish_req_redirect        $TARGET_FILES
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             $TARGET_FILES
+dr_equal            ctr_publish_query                    $TARGET_FILES
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      $TARGET_FILES
+dr_equal            ctr_publish_req                      $TARGET_FILES
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             $TARGET_FILES
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  $TARGET_FILES
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            $TARGET_FILES
-drr_equal           ctr_publish_responses           $TARGET_FILES
+drr_equal           ctr_publish_requests                 $TARGET_FILES
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                $TARGET_FILES
 
-drr_equal           dwl_volume                      $TARGET_VOLUME
+drr_equal           dwl_volume                           $TARGET_VOLUME
 
 print_all
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/auto-test/Stability1MB_SFTP_72h.sh b/test/mocks/datafilecollector-testharness/auto-test/Stability1MB_SFTP_72h.sh
index 072135c..bc0b2ef 100755
--- a/test/mocks/datafilecollector-testharness/auto-test/Stability1MB_SFTP_72h.sh
+++ b/test/mocks/datafilecollector-testharness/auto-test/Stability1MB_SFTP_72h.sh
@@ -8,81 +8,100 @@
 
 clean_containers
 
-export DR_TC="--tc normal"
-export DR_REDIR_TC="--tc normal"
 export MR_TC="--tc1300"
-export BC_TC=""
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"
+
+export DR_TC="--tc normal"
+export DR_FEEDS="2:A"
+
+export DR_REDIR_TC="--tc normal"
+export DR_REDIR_FEEDS="2:A"
+
 export NUM_FTPFILES="1000"
 export NUM_PNFS="700"
 export FILE_SIZE="1MB"
 export FTP_TYPE="SFTP"
+export FTP_FILE_PREFIXES="A"
+export NUM_FTP_SERVERS=5
 
 log_sim_settings
 
 start_simulators
 
-mr_equal            ctr_requests                    0 60
-dr_equal            ctr_published_files             0 60
+consul_config_app   0                                    "../simulator-group/consul/c12_feed2_PM.json"
+consul_config_dmaap 0                                    "../simulator-group/consul/dmaap_feed2.json"
+
+mr_equal            ctr_requests                         0 60
+dr_equal            ctr_published_files                  0 60
 
 mr_print            tc_info
 dr_print            tc_info
 drr_print           tc_info
 
-start_dfc
+start_dfc           0
 
-# 24h MR sim execution time since first poll, should be reached withing 72h +1h margion
-mr_contain_str      exe_time_first_poll             4320: $((60*60*24*3+3600))
+# 72h MR sim execution time since first poll, should be reached withing 72h + 1h margin
+mr_contain_str      exe_time_first_poll                  4320: $((60*60*24*3+3600))
+
+# Requirement number of files, 100 new files in first event for each PNF, then 1 new file per PNF in the
+# remaining 15 min polls up to 72h. This is the minimum number of published files for the test
+TARGET_REQUIRMENT_FILES=$((70000+700*95+700*96+700*96))
+
+#Make sure target is reached within 72h + a reasonable tolerance
+mr_greater         ctr_unique_files                      $((TARGET_REQUIRMENT_FILES-1)) 1800
+
 # stop event delivery
 mr_print            stop
 # wait for MR sim values to stabilize
 sleep_wait          30
 
-# Requirement number of files, 100 new files in first event for each PNF, then 1 new file per PNF in the
-# remaining polls up to 24h. This is the minimum number of published files for the test
-TARGET_REQUIRMENT_FILE=$((70000+700*95+700*96+700*96))
-
 #Calculate targets based on the number of of unique files delivered from MR sim
 TARGET_FILES=$(mr_read ctr_unique_files)
-TARGET_EVENTS=$((TARGET_FILES/100))
+TARGET_EVENTS=$((TARGET_FILES-70000+700))    #First event from a PNF is 100 new files, remaining events contains 1 new file
 TARGET_VOLUME=$((TARGET_FILES*1000000))
 
-#Maximum number of configured FTP files, if DFC download more than this then the NUM_FTPSFILES need to be increased.
+#Maximum number of configured FTP files, if DFC reach this then the NUM_FTPSFILES need to be increased.
 MAX_FILES=$((NUM_FTPFILE*NUM_PNFS))
 
 #Wait remaining time upto 15 min for DFC to download all consumed events
 sleep_wait          870
 
 #At least the requiment number of file shall be published
-dr_greater          ctr_published_files             $TARGET_REQUIRMENT_FILE
+dr_greater          ctr_published_files                  $((TARGET_REQUIRMENT_FILES-1))
 
-#If greate then MAX_FILES then more FTP files need to be configured
-mr_less             ctr_ctr_unique_files            MAX_FILES
+#If greater then MAX_FILES then more FTP files need to be configured
+mr_less             ctr_unique_files                     $MAX_FILES
 
 
 #Test that all files from polled events has been downloaded etc
 
-dr_equal            ctr_published_files             $TARGET_FILES
+dr_equal            ctr_published_files                  $TARGET_FILES
 
-mr_equal            ctr_events                      $TARGET_EVENTS
+mr_equal            ctr_events                           $TARGET_EVENTS
 
-mr_equal            ctr_unique_PNFs                 700
+mr_equal            ctr_unique_PNFs                      700
 
-dr_equal            ctr_publish_query               $TARGET_FILES
-dr_equal            ctr_publish_query_published     0
-dr_equal            ctr_publish_query_not_published $TARGET_FILES
-dr_equal            ctr_publish_req                 $TARGET_FILES
-dr_equal            ctr_publish_req_redirect        $TARGET_FILES
-dr_equal            ctr_publish_req_published       0
-dr_equal            ctr_published_files             $TARGET_FILES
+dr_equal            ctr_publish_query                    $TARGET_FILES
+dr_equal            ctr_publish_query_bad_file_prefix    0
+dr_equal            ctr_publish_query_published          0
+dr_equal            ctr_publish_query_not_published      $TARGET_FILES
+dr_equal            ctr_publish_req                      $TARGET_FILES
+dr_equal            ctr_publish_req_bad_file_prefix      0
+dr_equal            ctr_publish_req_redirect             $TARGET_FILES
+dr_equal            ctr_publish_req_published            0
+dr_equal            ctr_published_files                  $TARGET_FILES
+dr_equal            ctr_double_publish                   0
 
-drr_equal           ctr_publish_requests            $TARGET_FILES
-drr_equal           ctr_publish_responses           $TARGET_FILES
+drr_equal           ctr_publish_requests                 $TARGET_FILES
+drr_equal           ctr_publish_requests_bad_file_prefix 0
+drr_equal           ctr_publish_responses                $TARGET_FILES
 
-drr_equal           dwl_volume                      $TARGET_VOLUME
+drr_equal           dwl_volume                           $TARGET_VOLUME
 
 print_all
 
-check_dfc_log
+check_dfc_logs
 
 #### TEST COMPLETE ####
 
diff --git a/test/mocks/datafilecollector-testharness/common/test_env.sh b/test/mocks/datafilecollector-testharness/common/test_env.sh
index 794b354..f4d443b 100644
--- a/test/mocks/datafilecollector-testharness/common/test_env.sh
+++ b/test/mocks/datafilecollector-testharness/common/test_env.sh
@@ -16,3 +16,34 @@
 export DFC_LOCAL_IMAGE=onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server
 
 
+# Common env var for auto-test.
+
+DFC_PORT=8100
+DFC_PORT_SECURE=8433
+DFC_LOGPATH="/var/log/ONAP/application.log"
+DOCKER_SIM_NWNAME="dfcnet"
+CONSUL_HOST="consul-server"
+CONSUL_PORT=8500
+CONFIG_BINDING_SERVICE="config-binding-service"
+MR_PORT=2222
+DR_PORT=3906
+DR_PORT_SECURE=3907
+DRR_PORT=3908
+DRR_PORT_SECURE=3909
+DFC_APP_BASE="dfc_app"
+DFC_MAX_NUM=5
+DFC_MAX_IDX=$(($DFC_MAX_NUM - 1))
+SFTP_BASE="dfc_sftp-server"
+FTPS_BASE="dfc_ftpes-server-vsftpd"
+FTP_MAX_NUM=5
+FTP_MAX_IDX=$(($FTP_MAX_NUM - 1))
+SFTP_SIMS_CONTAINER="sftp-server0:22,sftp-server1:22,sftp-server2:22,sftp-server3:22,sftp-server4:22"
+FTPS_SIMS_CONTAINER="ftpes-server-vsftpd0:21,ftpes-server-vsftpd1:21,ftpes-server-vsftpd2:21,ftpes-server-vsftpd3:21,ftpes-server-vsftpd4:21"
+SFTP_SIMS_LOCALHOST="localhost:1022,localhost:1023,localhost:1024,localhost:1025,localhost:1026"
+FTPS_SIMS_LOCALHOST="localhost:1032,localhost:1033,localhost:1034,localhost:1035,localhost:1036"
+
+export SFTP_SIMS=$SFTP_SIMS_CONTAINER   #This env will be set to SFTP_SIMS_LOCALHOST if auto test is executed with 'manual-app'
+export FTPS_SIMS=$FTPS_SIMS_CONTAINER   #This env will be set to FTPS_SIMS_LOCALHOST if auto test is executed with 'manual-app'
+
+export DR_REDIR_SIM="drsim_redir"       #This env will be set to 'localhost' if auto test is executed with 'manual-app'
+
diff --git a/test/mocks/datafilecollector-testharness/common/testcase_common.sh b/test/mocks/datafilecollector-testharness/common/testcase_common.sh
index 1e0118e..b0a14aa 100755
--- a/test/mocks/datafilecollector-testharness/common/testcase_common.sh
+++ b/test/mocks/datafilecollector-testharness/common/testcase_common.sh
@@ -2,15 +2,22 @@
 
 . ../common/test_env.sh
 
+
+
 echo "Test case started as: ${BASH_SOURCE[$i+1]} "$1 $2
 
 # Script containing all functions needed for auto testing of test cases
 # Arg: local [<image-tag>] ]| remote [<image-tag>] ]| remote-remove [<image-tag>]] | manual-container | manual-app
 
+STARTED_DFCS="" #DFC app names added to this var to keep track of started container in the script
 START_ARG=$1
 IMAGE_TAG="latest"
 
 if [ $# -gt 1 ]; then
+	if [[ "$2" =~ ^1.1.* ]]; then
+		echo "This version of auto-test does not support DFC image version of 1.1.X"
+		exit 1
+	fi
 	IMAGE_TAG=$2
 fi
 
@@ -30,9 +37,9 @@
 	fi
 	DFC_IMAGE=$DFC_REMOTE_IMAGE":"$IMAGE_TAG
 elif [ $1 == "manual-container" ] && [ $# -eq 1 ]; then
-	echo "DFC is expected to be started manually as a container with name 'dfc_app'"
+	echo "DFC is expected to be started manually, when prompted,  as a container with name 'dfc_app'<index> with and index in the range from 0 to '${DFC_MAX_IDX}'"
 elif [ $1 == "manual-app" ] && [ $# -eq 1 ]; then
-	echo "DFC is expected to be started manually as a java application"
+	echo "DFC is expected to be started manually, when prompted, as a java application"
 else
 	echo "Expected arg: local [<image-tag>] ]| remote [<image-tag>] ]| remote-remove [<image-tag>]] | manual-container | manual-app"
 	exit 1
@@ -104,7 +111,7 @@
 
 if [ $1 !=  "manual-container" ] && [ $1 !=  "manual-app" ]; then
 	echo -e "DFC image tag set to: \033[1m" $IMAGE_TAG"\033[0m"
-	echo "Configured image for DFC app (${1}): "$DFC_IMAGE 
+	echo "Configured image for DFC app(s) (${1}): "$DFC_IMAGE
 	tmp_im=$(docker images ${DFC_IMAGE} | grep -v REPOSITORY)
 
 	if [ $1 == "local" ]; then
@@ -118,9 +125,9 @@
 	elif [ $1 == "remote" ] || [ $1 == "remote-remove" ]; then
 
 		if [ $1 == "remote-remove" ]; then
-			echo "Attempt to stop dfc_app container if running"
-			docker stop $(docker ps -q --filter name=dfc_app) &> /dev/null
-			docker rm $(docker ps -q --filter name=dfc_app) &> /dev/null
+			echo "Attempt to stop dfc_app container(s) if running"
+			docker stop $(docker ps -q --filter name=${DFC_APP_BASE}]) &> /dev/null
+			docker rm $(docker ps -q --filter name=${DFC_APP_BASE}) &> /dev/null
 			docker rmi $DFC_IMAGE &> /dev/null
 			tmp_im=""
 		fi
@@ -133,25 +140,26 @@
 				exit 1
 			fi
 			echo -e "DFC image: \033[1m"$tmp_im"\033[0m"
-		else 
+		else
 			echo -e "DFC image: \033[1m"$tmp_im"\033[0m"
-			echo "!! If the dfc image seem outdated, consider removing it from your docker registry and run the test again."
+			echo "!! If the dfc image seem outdated, consider removing it from your docker registry and run the test again. Or run the script with 'remote-remove'"
 		fi
 	fi
 fi
 
+
+
 echo ""
 
-echo "Building images for the simulators if needed, MR, DR and DR Redir simulators"
+echo "Building images for the simulators if needed, MR, DR, DR Redir and FTPS simulators"
 curdir=$PWD
 cd $SIM_GROUP
 cd ../dr-sim
 docker build -t drsim_common:latest . &> /dev/null
 cd ../mr-sim
 docker build -t mrsim:latest . &> /dev/null
-cd ../simulator-group
-cp -r ../ftps-sftp-server/configuration .
-cp -r ../ftps-sftp-server/tls .
+cd ../ftps-sftp-server
+docker build -t ftps_vsftpd:latest -f Dockerfile-ftps . &> /dev/null
 cd $curdir
 
 echo ""
@@ -161,19 +169,35 @@
 echo "DR simulator:       " $(docker images | grep drsim_common)
 echo "DR redir simulator: " $(docker images | grep drsim_common)
 echo "SFTP:               " $(docker images | grep atmoz/sftp)
-echo "FTPS:               " $(docker images | grep panubo/vsftpd)
+echo "FTPS:               " $(docker images | grep ftps_vsftpd)
+echo "Consul:             " $(docker images | grep consul)
+echo "CBS:                " $(docker images | grep platform.configbinding.app)
 echo ""
 
+#Configure MR sim to use correct host:port for running dfc as an app or as a container
+#Configure DR sim with correct address for DR redirect simulator
+if [ $START_ARG == "manual-app" ]; then
+	export SFTP_SIMS=$SFTP_SIMS_LOCALHOST
+	export FTPS_SIMS=$FTPS_SIMS_LOCALHOST
+	export DR_REDIR_SIM="localhost"
+fi
+#else
+#	export SFTP_SIMS=$SFTP_SIMS_CONTAINER
+#	export FTPS_SIMS=$FTPS_SIMS_CONTAINER
+#	export DR_REDIR_SIM="drsim_redir"
+#fi
+
 echo "-----------------------------------      Test case steps      -----------------------------------"
 
 # Print error info for the call in the parent script (test case). Arg: <error-message-to-print>
 # Not to be called from test script.
-print_err() {
+__print_err() {
     echo ${FUNCNAME[1]} " "$1" " ${BASH_SOURCE[$i+2]} " line" ${BASH_LINENO[$i+1]}
 }
-# Execute curl using the host and variable. Arg: <host> <variable-name>
+# Execute curl using the host and variable. Arg: <host and variable-name>  [ <flag-to-strip-new-line> ]
+#<flag-to-strip-new-line> may contain any string, it is just a flag
 # Returns the variable value (if success) and return code 0 or an error message and return code 1
-do_curl() {
+__do_curl() {
 	res=$(curl -sw "%{http_code}" $1)
 	http_code="${res:${#res}-3}"
 	if [ ${#res} -eq 3 ]; then
@@ -184,19 +208,24 @@
 			echo "<not found, resp:${http_code}>"
 			return 1
 		fi
-  		echo "${res:0:${#res}-3}"
+		if [ $# -eq 2 ]; then
+  			echo "${res:0:${#res}-3}" | xargs
+		else
+  			echo "${res:0:${#res}-3}"
+		fi
+
 		return 0
 	fi
 }
 
 # Test a simulator variable value towards  target value using an condition operator with an optional timeout.
-# Arg: <simulator-name> <host> <variable-name> <condition-operator> <target-value>  - This test is done 
+# Arg: <simulator-name> <host> <variable-name> <condition-operator> <target-value>  - This test is done
 # immediately and sets pass or fail depending on the result of comparing variable and target using the operator.
 # Arg: <simulator-name> <host> <variable-name> <condition-operator> <target-value> <timeout>  - This test waits up to the timeout
 # before setting pass or fail depending on the result of comparing variable and target using the operator.
 # Not to be called from test script.
 
-var_test() {
+__var_test() {
 	if [ $# -eq 6 ]; then
 		echo -e "---- ${1} sim test criteria: \033[1m ${3} \033[0m ${4} ${5} within ${6} seconds ----"
 		((RES_TEST++))
@@ -204,13 +233,17 @@
 		ctr=0
 		for (( ; ; ))
 		do
-			result="$(do_curl $2$3)"
+			result="$(__do_curl $2$3)"
 			retcode=$?
 			result=${result//[[:blank:]]/} #Strip blanks
 			duration=$((SECONDS-start))
 			if [ $((ctr%30)) -eq 0 ]; then
-				echo -ne "  Result=${result} after ${duration} seconds, DFC heartbeat="$(do_curl http://127.0.0.1:8100/heartbeat)
-				echo ""
+				echo "  Result=${result} after ${duration} seconds"
+				for (( i=0; i<=$DFC_MAX_IDX; i++ )); do
+					if [[ $STARTED_DFCS =~ "_"$DFC_APP_BASE$i"_" ]]; then
+						echo "    HB ${DFC_APP_BASE}${i}: $(__do_curl http://127.0.0.1:$(($DFC_PORT+$i))/status strip)"
+					fi
+				done
 			else
 				echo -ne "  Result=${result} after ${duration} seconds\033[0K\r"
 			fi
@@ -253,7 +286,7 @@
 	elif [ $# -eq 5 ]; then
 		echo -e "---- ${1} sim test criteria: \033[1m ${3} \033[0m ${4} ${5} ----"
 		((RES_TEST++))
-		result="$(do_curl $2$3)"
+		result="$(__do_curl $2$3)"
 		retcode=$?
 		result=${result//[[:blank:]]/}  #Strip blanks
 		if [ $retcode -ne 0 ]; then
@@ -275,15 +308,15 @@
 			((RES_FAIL++))
 			echo -e "----  \033[31m\033[1mFAIL\033[0m - Target ${3} ${4} ${5} not reached, result = ${result} ----"
 		fi
-	else 
-		echo "Wrong args to var_test, needs five or six args: <simulator-name> <host> <variable-name> <condition-operator> <target-value> [ <timeout> ]"
+	else
+		echo "Wrong args to __var_test, needs five or six args: <simulator-name> <host> <variable-name> <condition-operator> <target-value> [ <timeout> ]"
 		exit 1
 	fi
 }
 # Stops a named container
-docker_stop() {
+__docker_stop() {
 	if [ $# -ne 1 ]; then
-		echo "docker_stop need 1 arg <container-name>"
+		echo "__docker_stop need 1 arg <container-name>"
 		exit 1
 	fi
 	tmp=$(docker stop $1  2>/dev/null)
@@ -294,10 +327,24 @@
 	fi
 }
 
-# Removes a named container
-docker_rm() {
+# Starts a named container (that has previously been stopped)
+__docker_start() {
 	if [ $# -ne 1 ]; then
-		echo "docker_rm need 1 arg <container-name>"
+		echo "__docker_start need 1 arg <container-name>"
+		exit 1
+	fi
+	tmp=$(docker start $1  2>/dev/null)
+	if [ -z $tmp ] || [ $tmp != $1 ]; then
+		echo " ${1} container not started or not existing"
+	else
+		echo " ${1} container started"
+	fi
+}
+
+# Removes a named container
+__docker_rm() {
+	if [ $# -ne 1 ]; then
+		echo "__docker_rm need 1 arg <container-name>"
 		exit 1
 	fi
 	tmp=$(docker rm $1  2>/dev/null)
@@ -308,37 +355,78 @@
 	fi
 }
 
-start_dfc_image() {
-	echo "Starting DFC"
-	# Port mappning not needed since dfc is running in host mode
-	docker run -d --network="host" --name dfc_app $DFC_IMAGE > /dev/null
+__start_dfc_image() {
+
+	if [ $# != 2 ]; then
+    	__print_err "need tow args, <dfc-instance-name> 0.."$$DFC_MAX_IDX
+		exit 1
+	fi
+
+	if [ $2 -lt 0 ] || [ $2 -gt $DFC_MAX_IDX ]; then
+		__print_err "need two args, <dfc-instance-name> 0.."$DFC_MAX_IDX
+		exit 1
+	fi
+	appname=$1
+	localport=$(($DFC_PORT + $2))
+	localport_secure=$(($DFC_PORT_SECURE + $2))
+
+	echo "Creating docker network $DOCKER_SIM_NWNAME, if needed"
+
+	docker network ls| grep $DOCKER_SIM_NWNAME > /dev/null || docker network create $DOCKER_SIM_NWNAME
+
+	echo "Starting DFC: " $appname " with ports mapped to " $localport " and " $localport_secure " in docker network "$DOCKER_SIM_NWNAME
+
+	docker run -d -p $localport":8100" -p $localport_secure":8433" --network=$DOCKER_SIM_NWNAME -e CONSUL_HOST=$CONSUL_HOST -e CONSUL_PORT=$CONSUL_PORT -e CONFIG_BINDING_SERVICE=$CONFIG_BINDING_SERVICE -e HOSTNAME=$appname --name $appname $DFC_IMAGE > /dev/null
+
 	dfc_started=false
 	for i in {1..10}; do
-	if [ $(docker inspect --format '{{ .State.Running }}' dfc_app) ]
+	if [ $(docker inspect --format '{{ .State.Running }}' $appname) ]
  	then
-	 	echo " Image: $(docker inspect --format '{{ .Config.Image }}' dfc_app)"
-   		echo "DFC app Running"
+	 	echo " Image: $(docker inspect --format '{{ .Config.Image }}' ${appname})"
+   		echo "DFC container ${appname} running"
 		dfc_started=true
    		break
  	else
-   		echo sleep $i
+   		sleep $i
  	fi
 	done
 	if ! [ $dfc_started  ]; then
-		echo "DFC app could not be started"
+		echo "DFC container ${appname} could not be started"
 		exit 1
 	fi
+
+	dfc_hb=false
+	echo "Waiting for DFC ${appname} heartbeat..."
+	for i in {1..10}; do
+		result="$(__do_curl http://127.0.0.1:${localport}/heartbeat)"
+		if [ $? -eq 0 ]; then
+	   		echo "DFC ${appname} responds to heartbeat: " $result
+	   		dfc_hb=true
+	   		result="$(__do_curl http://127.0.0.1:${localport}/actuator/info)"
+	   		echo "DFC ${appname} image build info: " $result
+	   		break
+	 	else
+	   		sleep $i
+	 	fi
+	done
+
+	if ! [ $dfc_hb  ]; then
+		echo "DFC ${appname} did not respond to heartbeat"
+	fi
 }
 
-#WFunction for waiting for named container to be started manually.
-wait_for_container() {
+# Function for waiting for named container to be started manually.
+__wait_for_container() {
 	start=$SECONDS
-	if [ $# != 1 ]; then
-		echo "Need one arg: <container-name>"
+	if [ $# != 2 ]; then
+		echo "Need one arg: <container-name> <instance-id>"
 		exit 1
 	fi
+	http=$(($DFC_PORT+$2))
+	https=$((DFC_PORT_SECURE+$2))
+	echo "The container is expected to map its ports (8100/8433) to the following port visibile on the host: http port ${http} and https port ${https}"
 	echo "Waiting for container with name '${1}' to be started manually...."
-		
+
 	for (( ; ; ))
 	do
 		if [ $(docker inspect --format '{{ .State.Running }}' $1 2> /dev/null) ]; then
@@ -348,17 +436,22 @@
 	 		duration=$((SECONDS-start))
 			echo -ne "  Waited ${duration} seconds\033[0K\r"
    			sleep 1
- 		fi 
+ 		fi
 	done
+
+	echo "Connecting container "$1" to simulator network "$DOCKER_SIM_NWNAME
+	docker network connect $DOCKER_SIM_NWNAME $1
 }
 
-#WFunction for waiting for named container to be stopped manually. 
-wait_for_container_gone() {
+#WFunction for waiting for named container to be stopped manually.
+__wait_for_container_gone() {
 	start=$SECONDS
 	if [ $# != 1 ]; then
 		echo "Need one arg: <container-name>"
 		exit 1
 	fi
+	echo "Disconnecting container "$1" from simulator network "$DOCKER_SIM_NWNAME
+	docker network disconnect $DOCKER_SIM_NWNAME $1
 	echo "Waiting for container with name '${1}' to be stopped manually...."
 
 	for (( ; ; ))
@@ -370,18 +463,24 @@
 		else
    			echo "Container stopped: "$1
    			break
- 		fi 
+ 		fi
 	done
 }
 
 #Function for waiting to dfc to be started manually
-wait_for_dfc() {
-	read -p "Press enter to continue when dfc has been manually started"
+__wait_for_dfc() {
+	http=$(($DFC_PORT+$2))
+	https=$((DFC_PORT_SECURE+$2))
+	echo "The app is expected to listen to http port ${http} and https port ${https}"
+	echo "The app shall use 'localhost' and '8500' for CONSUL_HOST and CONSUL_PORT."
+	echo "The app shale use 'config-binding-service-localhost' for CONFIG_BINDING_SERVICE"
+	echo "The app shall use ${1} for HOSTNAME."
+	read -p "Press enter to continue when app mapping to ${1} has been manually started"
 }
 
 #Function for waiting to dfc to be stopped manually
-wait_for_dfc_gone() {
-	read -p "Press enter to continue when dfc has been manually stopped"
+__wait_for_dfc_gone() {
+	read -p "Press enter to continue when when app mapping to ${1} has been manually stopped"
 }
 
 #############################################################
@@ -391,28 +490,40 @@
 # Print the env variables needed for the simulators and their setup
 log_sim_settings() {
 	echo "Simulator settings"
-	echo "DR_TC=        "$DR_TC
-	echo "DR_REDIR_TC=  "$DR_REDIR_TC
-	echo "MR_TC=        "$MR_TC
-	echo "BC_TC=        "$BC_TC
-	echo "NUM_FTPFILES= "$NUM_FTPFILES
-	echo "NUM_PNFS=     "$NUM_PNFS
-	echo "FILE_SIZE=    "$FILE_SIZE
-	echo "FTP_TYPE=     "$FTP_TYPE
+	echo "MR_TC=                 "$MR_TC
+	echo "MR_GROUPS=             "$MR_GROUPS
+    echo "MR_FILE_PREFIX_MAPPING="$MR_FILE_PREFIX_MAPPING
+	echo "DR_TC=                 "$DR_TC
+	echo "DR_FEEDS=              "$DR_FEEDS
+	echo "DR_REDIR_SIM=          "$DR_REDIR_SIM
+	echo "DR_REDIR_TC=           "$DR_REDIR_TC
+	echo "DR_REDIR_FEEDS=        "$DR_REDIR_FEEDS
+
+	echo "NUM_FTPFILES=          "$NUM_FTPFILES
+	echo "NUM_PNFS=              "$NUM_PNFS
+	echo "FILE_SIZE=             "$FILE_SIZE
+	echo "FTP_TYPE=              "$FTP_TYPE
+	echo "FTP_FILE_PREFIXES=     "$FTP_FILE_PREFIXES
+	echo "NUM_FTP_SERVERS=       "$NUM_FTP_SERVERS
+	echo "SFTP_SIMS=             "$SFTP_SIMS
+	echo "FTPS_SIMS=             "$FTPS_SIMS
 	echo ""
 }
 
 # Stop and remove all containers including dfc app and simulators
 clean_containers() {
-	echo "Stopping all containers, dfc app and simulators with name prefix 'dfc_'"
+	echo "Stopping all containers, dfc app(s) and simulators with name prefix 'dfc_'"
 	docker stop $(docker ps -q --filter name=dfc_) &> /dev/null
 	echo "Removing all containers, dfc app and simulators with name prefix 'dfc_'"
 	docker rm $(docker ps -a -q --filter name=dfc_) &> /dev/null
+	echo "Removing unused docker networks with substring 'dfc' in network name"
+	docker network rm $(docker network ls -q --filter name=dfc)
 	echo ""
 }
 
 # Start all simulators in the simulator group
 start_simulators() {
+
 	echo "Starting all simulators"
 	curdir=$PWD
 	cd $SIM_GROUP
@@ -424,119 +535,304 @@
 # Start the dfc application
 start_dfc() {
 
+	if [ $# != 1 ]; then
+    	__print_err "need one arg, <dfc-instance-id>"
+		exit 1
+	fi
+
+	if [ $1 -lt 0 ] || [ $1 -gt $DFC_MAX_IDX ]; then
+		__print_err "arg should be 0.."$DFC_MAX_IDX
+		exit 1
+	fi 
+	appname=$DFC_APP_BASE$1
+	STARTED_DFCS=$STARTED_DFCS"_"$appname"_"
+
 	if [ $START_ARG == "local" ] || [ $START_ARG == "remote" ] ||  [ $START_ARG == "remote-remove" ]; then
-		start_dfc_image
+		__start_dfc_image $appname $1
 	elif [ $START_ARG == "manual-container" ]; then
-		wait_for_container dfc_app
+		__wait_for_container $appname $1
 	elif [ $START_ARG == "manual-app" ]; then
-		wait_for_dfc
+		__wait_for_dfc $appname $1
+	fi
+}
+
+# Configure consul with dfc config, args <app|dmaap> <dfc-instance-id> <json-file-path>
+# Not intended to be called directly by test scripts.
+__consul_config() {
+
+	if [ $# != 3 ]; then
+    	__print_err "need three args, <app|dmaap> <dfc-instance-id> <json-file-path>"
+		exit 1
+	fi
+
+	if [ $2 -lt 0 ] || [ $2 -gt $DFC_MAX_IDX ]; then
+		__print_err "dfc-instance-id should be 0.."$DFC_MAX_IDX
+		exit 1
+	fi
+	if ! [ -f $3 ]; then
+		__print_err "json file does not extis: "$3
+		exit 1
+	fi
+
+	if [ $1 == "app" ]; then
+		appname=$DFC_APP_BASE$2
+	elif [ $1 == "dmaap" ]; then
+		appname=$DFC_APP_BASE$2":dmaap"
+	else
+		__print_err "config type should be 'app' or 'dmaap'"
+		exit 1
+	fi
+
+	echo "Configuring consul for " $appname " from " $3
+	curl -s http://127.0.0.1:${CONSUL_PORT}/v1/kv/${appname}?dc=dc1 -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' -H 'X-Requested-With: XMLHttpRequest' --data-binary "@"$3 >/dev/null
+}
+
+# Configure consul with dfc app config, args <dfc-instance-id> <json-file-path>
+consul_config_app() {
+	if [ $START_ARG == "manual-app" ]; then
+		echo "Replacing 'mrsim' with 'localhost' in json app config for consul"
+		sed 's/mrsim/localhost/g' $2 > .tmp_app.json
+		__consul_config app $1 .tmp_app.json
+	else
+		__consul_config app $1 $2
+	fi
+}
+
+# Configure consul with dfc dmaap config, args <dfc-instance-id> <json-file-path>
+consul_config_dmaap() {
+	if [ $START_ARG == "manual-app" ]; then
+		echo "Replacing 'drsim' with 'localhost' in json dmaap config for consul"
+		sed 's/drsim/localhost/g' $2 > .tmp_dmaap.json
+		__consul_config dmaap $1 .tmp_dmaap.json
+	else
+		__consul_config dmaap $1 $2
 	fi
 }
 
 # Stop and remove the dfc app container
 kill_dfc() {
-	echo "Killing DFC"
+
+	if [ $# != 1 ]; then
+    	__print_err "need one arg, <dfc-instance-id>"
+		exit 1
+	fi
+
+	if [ $1 -lt 0 ] || [ $1 -gt $DFC_MAX_IDX ]; then
+		__print_err "arg should be 0.."$DFC_MAX_IDX
+		exit 1
+	fi
+	appname=$DFC_APP_BASE$1
+
+	echo "Killing DFC, instance id: "$1
 
 	if [ $START_ARG == "local" ] || [ $START_ARG == "remote" ] ||  [ $START_ARG == "remote-remove" ]; then
-		docker_stop dfc_app
-		docker_rm dfc_app
+		__docker_stop $appname
+		__docker_rm $appname
 	elif [ $START_ARG == "manual-container" ]; then
-		wait_for_container_gone dfc_app
+		__wait_for_container_gone $appname
 	elif [ $START_ARG == "manual-app" ]; then
-		wait_for_dfc_gone
+		__wait_for_dfc_gone $appname
 	fi
 }
 
 # Stop and remove the DR simulator container
 kill_dr() {
 	echo "Killing DR sim"
-	docker_stop dfc_dr-sim
-	docker_rm dfc_dr-sim
+	__docker_stop dfc_dr-sim
+	__docker_rm dfc_dr-sim
 }
 
 # Stop and remove the DR redir simulator container
 kill_drr() {
 	echo "Killing DR redir sim"
-	docker_stop dfc_dr-redir-sim
-	docker_rm dfc_dr-redir-sim
+	__docker_stop dfc_dr-redir-sim
+	__docker_rm dfc_dr-redir-sim
 }
 
 # Stop and remove the MR simulator container
 kill_mr() {
 	echo "Killing MR sim"
-	docker_stop dfc_mr-sim
-	docker_rm dfc_mr-sim
+	__docker_stop dfc_mr-sim
+	__docker_rm dfc_mr-sim
 }
 
-# Stop and remove the SFTP container
+# Stop and remove the SFTP container, arg: <sftp-instance-id>
 kill_sftp() {
-	echo "Killing SFTP"
-	docker_stop dfc_sftp-server
-	docker_rm dfc_sftp-server
+
+	if [ $# != 1 ]; then
+    	__print_err "need one arg, <sftp-instance-id>"
+		exit 1
+	fi
+
+	if [ $1 -lt 0 ] || [ $1 -gt $FTP_MAX_IDX ]; then
+		__print_err "arg should be 0.."$FTP_MAX_IDX
+		exit 1
+	fi
+	appname=$SFTP_BASE$1
+
+	echo "Killing SFTP, instance id: "$1
+
+	__docker_stop $appname
+	__docker_rm $appname
 }
 
-# Stop and remove the FTPS container
+# Stop SFTP container, arg: <sftp-instance-id>
+stop_sftp() {
+
+	if [ $# != 1 ]; then
+    	__print_err "need one arg, <sftp-instance-id>"
+		exit 1
+	fi
+
+	if [ $1 -lt 0 ] || [ $1 -gt $FTP_MAX_IDX ]; then
+		__print_err "arg should be 0.."$FTP_MAX_IDX
+		exit 1
+	fi
+	appname=$SFTP_BASE$1
+
+	echo "Stopping SFTP, instance id: "$1
+
+	__docker_stop $appname
+}
+
+# Starts a stopped SFTP container, arg: <sftp-instance-id>
+start_sftp() {
+
+	if [ $# != 1 ]; then
+    	__print_err "need one arg, <sftp-instance-id>"
+		exit 1
+	fi
+
+	if [ $1 -lt 0 ] || [ $1 -gt $FTP_MAX_IDX ]; then
+		__print_err "arg should be 0.."$FTP_MAX_IDX
+		exit 1
+	fi
+	appname=$SFTP_BASE$1
+
+	echo "Starting SFTP, instance id: "$1
+
+	__docker_start $appname
+}
+
+# Stop and remove the FTPS container, arg: <ftps-instance-id>
 kill_ftps() {
-	echo "Killing FTPS"
-	docker_stop dfc_ftpes-server-vsftpd
-	docker_rm dfc_ftpes-server-vsftpd
+
+	if [ $# != 1 ]; then
+    	__print_err "need one arg, <ftpS-instance-id>"
+		exit 1
+	fi
+
+	if [ $1 -lt 0 ] || [ $1 -gt $FTP_MAX_IDX ]; then
+		__print_err "arg should be 0.."$FTP_MAX_IDX
+		exit 1
+	fi
+	appname=$FTPS_BASE$1
+
+	echo "Killing FTPS, instance id: "$1
+
+	__docker_stop $appname
+	__docker_rm $appname
+}
+
+# Stop FTPS container, arg: <ftps-instance-id>
+stop_ftps() {
+
+	if [ $# != 1 ]; then
+    	__print_err "need one arg, <ftps-instance-id>"
+		exit 1
+	fi
+
+	if [ $1 -lt 0 ] || [ $1 -gt $FTP_MAX_IDX ]; then
+		__print_err "arg should be 0.."$FTP_MAX_IDX
+		exit 1
+	fi
+	appname=$FTPS_BASE$1
+
+	echo "Stopping FTPS, instance id: "$1
+
+	__docker_stop $appname
+}
+
+# Starts a stopped FTPS container, arg: <ftps-instance-id>
+start_ftps() {
+
+	if [ $# != 1 ]; then
+    	__print_err "need one arg, <ftps-instance-id>"
+		exit 1
+	fi
+
+	if [ $1 -lt 0 ] || [ $1 -gt $FTP_MAX_IDX ]; then
+		__print_err "arg should be 0.."$FTP_MAX_IDX
+		exit 1
+	fi
+	appname=$FTPS_BASE$1
+
+	echo "Starting FTPS, instance id: "$1
+
+	__docker_start $appname
 }
 
 # Print a variable value from the MR simulator. Arg: <variable-name>
 mr_print() {
 	if [ $# != 1 ]; then
-    	print_err "need one arg, <sim-param>"
+    	__print_err "need one arg, <sim-param>"
 		exit 1
 	fi
-	echo -e "---- MR sim, \033[1m $1 \033[0m: $(do_curl http://127.0.0.1:2222/$1)"
+	echo -e "---- MR sim, \033[1m $1 \033[0m: $(__do_curl http://127.0.0.1:$MR_PORT/$1)"
 }
 
 # Print a variable value from the DR simulator. Arg: <variable-name>
 dr_print() {
 	if [ $# != 1 ]; then
-    	print_err "need one arg, <sim-param>"
+    	__print_err "need one arg, <sim-param>"
 		exit 1
 	fi
-	echo -e "---- DR sim, \033[1m $1 \033[0m: $(do_curl http://127.0.0.1:3906/$1)"
+	echo -e "---- DR sim, \033[1m $1 \033[0m: $(__do_curl http://127.0.0.1:$DR_PORT/$1)"
 }
 
 # Print a variable value from the DR redir simulator. Arg: <variable-name>
 drr_print() {
 	if [ $# != 1 ]; then
-    	print_err "need one arg, <sim-param>"
+    	__print_err "need one arg, <sim-param>"
 		exit 1
 	fi
-	echo -e "---- DR redir sim, \033[1m $1 \033[0m: $(do_curl http://127.0.0.1:3908/$1)"
+	echo -e "---- DR redir sim, \033[1m $1 \033[0m: $(__do_curl http://127.0.0.1:$DRR_PORT/$1)"
 }
-# Print a variable value from dfc. Arg: <variable-name>
+# Print a variable value from dfc. Arg: <dfc-instance-id> <variable-name>
 dfc_print() {
-	if [ $# != 1 ]; then
-    	print_err "need one arg, <dfc-param>"
+	if [ $# != 2 ]; then
+    	__print_err "need two args, <dfc-instance-id> <dfc-param>"
 		exit 1
 	fi
-	echo -e "---- DFC, \033[1m $1 \033[0m: $(do_curl http://127.0.0.1:8100/$1)"
+	if [ $1 -lt 0 ] || [ $1 -gt $DFC_MAX_IDX ]; then
+		__print_err "dfc instance id should be in range 0.."DFC_MAX_IDX
+		exit 1
+	fi
+	localport=$(($DFC_PORT + $1))
+	appname=$DFC_APP_BASE$1
+	echo -e "---- DFC $appname, \033[1m $2 \033[0m: $(__do_curl http://127.0.0.1:$localport/$2)"
 }
 
-# Read a variable value from MR sim and send to stdout.
+# Read a variable value from MR sim and send to stdout. Arg: <variable-name>
 mr_read() {
-	echo "$(do_curl http://127.0.0.1:2222/$1)"
+	echo "$(__do_curl http://127.0.0.1:$MR_PORT/$1)"
 }
 
-# Read a variable value from DR sim and send to stdout.
+# Read a variable value from DR sim and send to stdout. Arg: <variable-name>
 dr_read() {
-	echo "$(do_curl http://127.0.0.1:3906/$1)"
+	echo "$(__do_curl http://127.0.0.1:$DR_PORT/$1)"
 }
 
-# Read a variable value from DR redir sim and send to stdout.
+# Read a variable value from DR redir sim and send to stdout. Arg: <variable-name>
 drr_read() {
-	echo "$(do_curl http://127.0.0.1:3908/$1)"
+	echo "$(__do_curl http://127.0.0.1:$DRR_PORT/$1)"
 }
 
 
 # Sleep. Arg: <sleep-time-in-sec>
 sleep_wait() {
 	if [ $# != 1 ]; then
-		print_err "need one arg, <sleep-time-in-sec>"
+		__print_err "need one arg, <sleep-time-in-sec>"
 		exit 1
 	fi
 	echo "---- Sleep for " $1 " seconds ----"
@@ -547,25 +843,36 @@
 		sleep 1
 		duration=$((SECONDS-start))
 	done
+	echo ""
 }
 
 # Sleep and print dfc heartbeat. Arg: <sleep-time-in-sec>
 sleep_heartbeat() {
 	if [ $# != 1 ]; then
-		print_err "need one arg, <sleep-time-in-sec>"
+		__print_err "need one arg, <sleep-time-in-sec>"
 		exit 1
 	fi
 	echo "---- Sleep for " $1 " seconds ----"
+	echo ""
 	start=$SECONDS
 	duration=$((SECONDS-start))
 	ctr=0
+	rows=0
 	while [ $duration -lt $1 ]; do
-		if [ $((ctr%30)) -eq 0 ]; then
-			echo -ne "  Slept for ${duration} seconds, \033[1m heartbeat \033[0m "$(do_curl http://127.0.0.1:8100/heartbeat)
-			echo ""
-		else
-			echo -ne "  Slept for ${duration} seconds, \033[1m heartbeat \033[0m "$(do_curl http://127.0.0.1:8100/heartbeat)" \033[0K\r"
+		if [ $rows -eq 0 ]; then
+			tput cuu1
 		fi
+		rows=0
+		echo "  Slept for ${duration} seconds"
+		if [ $((ctr%30)) -eq 0 ]; then
+			for (( i=0; i<=$DFC_MAX_IDX; i++ )); do
+				if [[ $STARTED_DFCS =~ "_"$DFC_APP_BASE$i"_" ]]; then
+					let rows=rows+1
+					echo "    HB ${DFC_APP_BASE}${i}: $(__do_curl http://127.0.0.1:$(($DFC_PORT+$i))/heartbeat)"
+				fi
+			done
+		fi
+
 		let ctr=ctr+1
 		sleep 1
 		duration=$((SECONDS-start))
@@ -581,9 +888,9 @@
 # value or not.
 mr_equal() {
 	if [ $# -eq 2 ] || [ $# -eq 3 ]; then
-		var_test "MR" "http://127.0.0.1:2222/" $1 "=" $2 $3
+		__var_test "MR" "http://127.0.0.1:$MR_PORT/" $1 "=" $2 $3
 	else
-		print_err "Wrong args to mr_equal, needs two or three args: <sim-param> <target-value> [ timeout ]"
+		__print_err "Wrong args to mr_equal, needs two or three args: <sim-param> <target-value> [ timeout ]"
 	fi
 }
 
@@ -595,9 +902,9 @@
 # value or not.
 mr_greater() {
 	if [ $# -eq 2 ] || [ $# -eq 3 ]; then
-		var_test "MR" "http://127.0.0.1:2222/" $1 ">" $2 $3
+		__var_test "MR" "http://127.0.0.1:$MR_PORT/" $1 ">" $2 $3
 	else
-		print_err "Wrong args to mr_greater, needs two or three args: <sim-param> <target-value> [ timeout ]"
+		__print_err "Wrong args to mr_greater, needs two or three args: <sim-param> <target-value> [ timeout ]"
 	fi
 }
 
@@ -609,9 +916,9 @@
 # value or not.
 mr_less() {
 	if [ $# -eq 2 ] || [ $# -eq 3 ]; then
-		var_test "MR" "http://127.0.0.1:2222/" $1 "<" $2 $3
+		__var_test "MR" "http://127.0.0.1:$MR_PORT/" $1 "<" $2 $3
 	else
-		print_err "Wrong args to mr_less, needs two or three args: <sim-param> <target-value> [ timeout ]"
+		__print_err "Wrong args to mr_less, needs two or three args: <sim-param> <target-value> [ timeout ]"
 	fi
 }
 
@@ -623,9 +930,9 @@
 # value or not.
 mr_contain_str() {
 	if [ $# -eq 2 ] || [ $# -eq 3 ]; then
-		var_test "MR" "http://127.0.0.1:2222/" $1 "contain_str" $2 $3
+		__var_test "MR" "http://127.0.0.1:$MR_PORT/" $1 "contain_str" $2 $3
 	else
-		print_err "Wrong args to mr_contain_str, needs two or three args: <sim-param> <target-value> [ timeout ]"
+		__print_err "Wrong args to mr_contain_str, needs two or three args: <sim-param> <target-value> [ timeout ]"
 	fi
 }
 
@@ -637,9 +944,9 @@
 # value or not.
 dr_equal() {
 	if [ $# -eq 2 ] || [ $# -eq 3 ]; then
-		var_test "DR" "http://127.0.0.1:3906/" $1 "=" $2 $3
+		__var_test "DR" "http://127.0.0.1:$DR_PORT/" $1 "=" $2 $3
 	else
-		print_err "Wrong args to dr_equal, needs two or three args: <sim-param> <target-value> [ timeout ]"
+		__print_err "Wrong args to dr_equal, needs two or three args: <sim-param> <target-value> [ timeout ]"
 	fi
 }
 
@@ -651,9 +958,9 @@
 # value or not.
 dr_greater() {
 	if [ $# -eq 2 ] || [ $# -eq 3 ]; then
-		var_test "DR" "http://127.0.0.1:3906/" $1 ">" $2 $3
+		__var_test "DR" "http://127.0.0.1:$DR_PORT/" $1 ">" $2 $3
 	else
-		print_err "Wrong args to dr_greater, needs two or three args: <sim-param> <target-value> [ timeout ]"
+		__print_err "Wrong args to dr_greater, needs two or three args: <sim-param> <target-value> [ timeout ]"
 	fi
 }
 
@@ -665,9 +972,23 @@
 # value or not.
 dr_less() {
 	if [ $# -eq 2 ] || [ $# -eq 3 ]; then
-		var_test "DR" "http://127.0.0.1:3906/" $1 "<" $2 $3
+		__var_test "DR" "http://127.0.0.1:$DR_PORT/" $1 "<" $2 $3
 	else
-		print_err "Wrong args to dr_less, needs two or three args: <sim-param> <target-value> [ timeout ]"
+		__print_err "Wrong args to dr_less, needs two or three args: <sim-param> <target-value> [ timeout ]"
+	fi
+}
+
+# Tests if a variable value in the DR simulator contains the target string and and optional timeout.
+# Arg: <variable-name> <target-value> - This test set pass or fail depending on if the variable contains
+# the target or not.
+# Arg: <variable-name> <target-value> <timeout-in-sec>  - This test waits up to the timeout seconds
+# before setting pass or fail depending on if the variable value contains the target
+# value or not.
+dr_contain_str() {
+	if [ $# -eq 2 ] || [ $# -eq 3 ]; then
+		__var_test "DR" "http://127.0.0.1:$DR_PORT/" $1 "contain_str" $2 $3
+	else
+		__print_err "Wrong args to dr_contain_str, needs two or three args: <sim-param> <target-value> [ timeout ]"
 	fi
 }
 
@@ -679,9 +1000,9 @@
 # value or not.
 drr_equal() {
 	if [ $# -eq 2 ] || [ $# -eq 3 ]; then
-		var_test "DR REDIR" "http://127.0.0.1:3908/" $1 "=" $2 $3
+		__var_test "DR REDIR" "http://127.0.0.1:$DRR_PORT/" $1 "=" $2 $3
 	else
-		print_err "Wrong args to drr_equal, needs two or three args: <sim-param> <target-value> [ timeout ]"
+		__print_err "Wrong args to drr_equal, needs two or three args: <sim-param> <target-value> [ timeout ]"
 	fi
 }
 
@@ -694,9 +1015,9 @@
 # value or not.
 drr_greater() {
 	if [ $# -eq 2 ] || [ $# -eq 3 ]; then
-		var_test "DR REDIR" "http://127.0.0.1:3908/" $1 ">" $2 $3
+		__var_test "DR REDIR" "http://127.0.0.1:$DRR_PORT/" $1 ">" $2 $3
 	else
-		print_err "Wrong args to drr_greater, needs two or three args: <sim-param> <target-value> [ timeout ]"
+		__print_err "Wrong args to drr_greater, needs two or three args: <sim-param> <target-value> [ timeout ]"
 	fi
 }
 
@@ -708,27 +1029,47 @@
 # value or not.
 drr_less() {
 	if [ $# -eq 2 ] || [ $# -eq 3 ]; then
-		var_test "DR REDIR" "http://127.0.0.1:3908/" $1 "<" $2 $3
+		__var_test "DR REDIR" "http://127.0.0.1:$DRR_PORT/" $1 "<" $2 $3
 	else
-		print_err "Wrong args to drr_less, needs two or three args: <sim-param> <target-value> [ timeout ]"
+		__print_err "Wrong args to drr_less, needs two or three args: <sim-param> <target-value> [ timeout ]"
 	fi
 }
 
-#Test is a variable in the DFC contains a substring. Arg: <variable-name> <substring-in-quotes>
+# Tests if a variable value in the DR redir simulator contains the target string and and optional timeout.
+# Arg: <variable-name> <target-value> - This test set pass or fail depending on if the variable contains
+# the target or not.
+# Arg: <variable-name> <target-value> <timeout-in-sec>  - This test waits up to the timeout seconds
+# before setting pass or fail depending on if the variable value contains the target
+# value or not.
+drr_contain_str() {
+	if [ $# -eq 2 ] || [ $# -eq 3 ]; then
+		__var_test "DR REDIR" "http://127.0.0.1:$DRR_PORT/" $1 "contain_str" $2 $3
+	else
+		__print_err "Wrong args to drr_contain_str, needs two or three args: <sim-param> <target-value> [ timeout ]"
+	fi
+}
+
+#Test if a variable in the DFC contains a substring. Arg: <dfc-index> <variable-name> <substring-in-quotes>
 dfc_contain_str() {
-	if [ $# -eq 2 ]; then
-		echo -e "---- DFC test criteria: \033[1m ${1} \033[0m contains: ${2} ----"
+	if [ $# -eq 3 ]; then
+		if [ $1 -lt 0 ] || [ $1 -gt $DFC_MAX_IDX ]; then
+			__print_err "arg should be 0.."$DFC_MAX_IDX
+			exit 1
+		fi
+		appname=$DFC_APP_BASE$1
+		localport=$(($DFC_PORT + $1))
+		echo -e "---- DFC test criteria: $appname \033[1m ${2} \033[0m contains: ${3} ----"
 		((RES_TEST++))
-		result="$(do_curl http://127.0.0.1:8100/${1})"
-		if [[ $result =~ $2 ]]; then
+		result="$(__do_curl http://127.0.0.1:$localport/${2})"
+		if [[ $result =~ $3 ]]; then
 			((RES_PASS++))
-			echo -e "----  \033[32m\033[1mPASS\033[0m - Test criteria met"		
+			echo -e "----  \033[32m\033[1mPASS\033[0m - Test criteria met"
 		else
 			((RES_FAIL++))
-			echo -e "----  \033[31m\033[1mFAIL\033[0m - Target ${1} not reached, result = ${result} ----"
+			echo -e "----  \033[31m\033[1mFAIL\033[0m - Target '${3}' not reached, result = ${result} ----"
 		fi
-	else 
-		echo "Wrong args to dfc_contain_str, needs two arg: <dfc-variable> <str>"
+	else
+		echo "Wrong args to dfc_contain_str, needs three arg: <dfc-index> <dfc-variable> <str>"
 		exit 1
 	fi
 }
@@ -737,41 +1078,66 @@
 # separate logs stored at different steps in the test script. Arg: <tc-id> <log-prefix>
 store_logs() {
 	if [ $# != 1 ]; then
-    	print_err "need one arg, <file-prefix>"
+    	__print_err "need one arg, <file-prefix>"
 		exit 1
 	fi
 	echo "Storing all container logs and dfc app log using prefix: "$1
 	if ! [ $START_ARG == "manual-app" ]; then
-		docker cp dfc_app:/var/log/ONAP/application.log $TESTLOGS/$ATC/$1_application.log
-		docker logs dfc_app > $TESTLOGS/$ATC/$1_dfc_app-docker.log 2>&1
+		for (( i=0; i<=$DFC_MAX_IDX; i++ )); do
+			appname=$DFC_APP_BASE$i
+			tmp=$(docker ps | grep $appname)
+			if ! [ -z "$tmp" ]; then   #Only stored logs from running DFC apps
+				docker cp $appname:/var/log/ONAP/application.log $TESTLOGS/$ATC/${1}_${appname}_application.log
+				docker logs $appname > $TESTLOGS/$ATC/$1_$appname-docker.log 2>&1
+			fi
+		done
 	fi
 	docker logs dfc_mr-sim > $TESTLOGS/$ATC/$1_dfc_mr-sim-docker.log 2>&1
 	docker logs dfc_dr-sim > $TESTLOGS/$ATC/$1_dfc_dr-sim-docker.log 2>&1
 	docker logs dfc_dr-redir-sim > $TESTLOGS/$ATC/$1_dfc_dr-redir-sim-docker.log 2>&1
-	docker logs dfc_ftpes-server-vsftpd > $TESTLOGS/$ATC/$1_dfc_ftpes-server-vsftpd.log 2>&1
-	docker logs dfc_sftp-server > $TESTLOGS/$ATC/$1_dfc_sftp-server.log 2>&1
+
+	for (( i=0; i<=$FTP_MAX_IDX; i++ )); do
+		appname=$SFTP_BASE$i
+		docker logs $appname > $TESTLOGS/$ATC/${1}_${appname}.log 2>&1
+		appname=$FTPS_BASE$i
+		docker logs $appname > $TESTLOGS/$ATC/${1}_${appname}.log 2>&1
+	done
+
+	docker logs dfc_consul > $TESTLOGS/$ATC/$1_consul.log 2>&1
+	docker logs dfc_cbs > $TESTLOGS/$ATC/$1_cbs.log 2>&1
 }
-# Check the dfc application log for WARN and ERR messages and print the count.
-check_dfc_log() {
-	echo "Checking dfc log /var/log/ONAP/application.log for WARNINGs and ERRORs, excluding messages from CONSUL"
-	foundentries=$(docker exec -it dfc_app grep WARN /var/log/ONAP/application.log | grep -iv CONSUL | wc -l)
+# Check the dfc application log, for all dfc instances, for WARN and ERR messages and print the count.
+check_dfc_logs() {
+	for (( i=0; i<=$DFC_MAX_IDX; i++ )); do
+		appname=$DFC_APP_BASE$i
+		tmp=$(docker ps | grep $appname)
+		if ! [ -z "$tmp" ]; then  #Only check logs for running dfc_apps
+			_check_dfc_log $appname
+		fi
+	done
+}
+
+# Check dfc app log for one dfc instance, arg <dfc-app-name>
+_check_dfc_log() {
+	echo "Checking $1 log $DFC_LOGPATH for WARNINGs and ERRORs"
+	foundentries=$(docker exec -it $1 grep WARN /var/log/ONAP/application.log | wc -l)
 	if [ $? -ne  0 ];then
-		echo "  Problem to search dfc log /var/log/ONAP/application.log"
+		echo "  Problem to search $1 log $DFC_LOGPATH"
 	else
 		if [ $foundentries -eq 0 ]; then
-			echo "  No WARN entries found in dfc log /var/log/ONAP/application.log"
-		else 
-			echo -e "  Found \033[1m"$foundentries"\033[0m WARN entries in dfc log /var/log/ONAP/application.log"
+			echo "  No WARN entries found in $1 log $DFC_LOGPATH"
+		else
+			echo -e "  Found \033[1m"$foundentries"\033[0m WARN entries in $1 log $DFC_LOGPATH"
 		fi
 	fi
-		foundentries=$(docker exec -it dfc_app grep ERR /var/log/ONAP/application.log | grep -iv CONSUL | wc -l)
+	foundentries=$(docker exec -it $1 grep ERR $DFC_LOGPATH | wc -l)
 	if [ $? -ne  0 ];then
-		echo "  Problem to search dfc log /var/log/ONAP/application.log"
+		echo "  Problem to search $1 log $DFC_LOGPATH"
 	else
 		if [ $foundentries -eq 0 ]; then
-			echo "  No ERR entries found in dfc log /var/log/ONAP/application.log"
-		else 
-			echo -e "  Found \033[1m"$foundentries"\033[0m ERR entries in dfc log /var/log/ONAP/application.log"
+			echo "  No ERR entries found in $1 log $DFC_LOGPATH"
+		else
+			echo -e "  Found \033[1m"$foundentries"\033[0m ERR entries in $1 log $DFC_LOGPATH"
 		fi
 	fi
 }
@@ -780,37 +1146,76 @@
 
 	echo "---- DFC and all sim variables"
 
-	dfc_print heartbeat
-	
+	for (( i=0; i<=$DFC_MAX_IDX; i++ )); do
+		appname=$DFC_APP_BASE$i
+		tmp=$(docker ps | grep $appname)
+		if ! [ -z "$tmp" ]; then  #Only check running dfc_apps
+			dfc_print $i status
+		fi
+	done
+
+
 	mr_print tc_info
+	mr_print status
 	mr_print execution_time
+	mr_print groups
+	mr_print changeids
+	mr_print fileprefixes
 	mr_print exe_time_first_poll
+	mr_print groups/exe_time_first_poll
 	mr_print ctr_requests
+	mr_print groups/ctr_requests
 	mr_print ctr_responses
+	mr_print groups/ctr_responses
 	mr_print ctr_files
+	mr_print groups/ctr_files
 	mr_print ctr_unique_files
+	mr_print groups/ctr_unique_files
+	mr_print groups/ctr_events
 	mr_print ctr_events
 	mr_print ctr_unique_PNFs
+	mr_print groups/ctr_unique_PNFs
 
 	dr_print tc_info
 	dr_print execution_time
+	dr_print feeds
 	dr_print ctr_publish_query
+	dr_print feeds/ctr_publish_query
+	dr_print ctr_publish_query_bad_file_prefix
+	dr_print feeds/ctr_publish_query_bad_file_prefix
 	dr_print ctr_publish_query_published
+	dr_print feeds/ctr_publish_query_published
 	dr_print ctr_publish_query_not_published
+	dr_print feeds/ctr_publish_query_not_published
 	dr_print ctr_publish_req
+	dr_print feeds/ctr_publish_req
+	dr_print ctr_publish_req_bad_file_prefix
+	dr_print feeds/ctr_publish_req_bad_file_prefix
 	dr_print ctr_publish_req_redirect
+	dr_print feeds/ctr_publish_req_redirect
 	dr_print ctr_publish_req_published
+	dr_print feeds/ctr_publish_req_published
 	dr_print ctr_published_files
+	dr_print feeds/ctr_published_files
+	dr_print ctr_double_publish
+	dr_print feeds/ctr_double_publish
 
 	drr_print tc_info
 	drr_print execution_time
+	drr_print feeds
 	drr_print ctr_publish_requests
+	drr_print feeds/ctr_publish_requests
+	drr_print ctr_publish_requests_bad_file_prefix
+	drr_print feeds/ctr_publish_requests_bad_file_prefix
 	drr_print ctr_publish_responses
+	drr_print feeds/ctr_publish_responses
 	drr_print dwl_volume
+	drr_print feeds/dwl_volume
 	drr_print time_lastpublish
+	drr_print feeds/time_lastpublish
 }
 
-# Print the test result 
+# Print the test result
 print_result() {
 
 	TCTEST_END=$SECONDS
@@ -830,10 +1235,24 @@
 	total=$((RES_PASS+RES_FAIL))
 	if [ $RES_TEST -eq 0 ]; then
 		echo -e "\033[1mNo tests seem to have executed. Check the script....\033[0m"
+ 		echo -e "\033[31m\033[1m ___  ___ ___ ___ ___ _____   ___ _   ___ _   _   _ ___ ___ \033[0m"
+ 		echo -e "\033[31m\033[1m/ __|/ __| _ \_ _| _ \_   _| | __/_\ |_ _| | | | | | _ \ __|\033[0m"
+		echo -e "\033[31m\033[1m\__ \ (__|   /| ||  _/ | |   | _/ _ \ | || |_| |_| |   / _| \033[0m"
+ 		echo -e "\033[31m\033[1m|___/\___|_|_\___|_|   |_|   |_/_/ \_\___|____\___/|_|_\___|\033[0m"
 	elif [ $total != $RES_TEST ]; then
 		echo -e "\033[1mTotal number of tests does not match the sum of passed and failed tests. Check the script....\033[0m"
+		echo -e "\033[31m\033[1m ___  ___ ___ ___ ___ _____   ___ _   ___ _   _   _ ___ ___ \033[0m"
+		echo -e "\033[31m\033[1m/ __|/ __| _ \_ _| _ \_   _| | __/_\ |_ _| | | | | | _ \ __|\033[0m"
+		echo -e "\033[31m\033[1m\__ \ (__|   /| ||  _/ | |   | _/ _ \ | || |_| |_| |   / _| \033[0m"
+ 		echo -e "\033[31m\033[1m|___/\___|_|_\___|_|   |_|   |_/_/ \_\___|____\___/|_|_\___|\033[0m"
 	elif [ $RES_PASS = $RES_TEST ]; then
 		echo -e "All tests \033[32m\033[1mPASS\033[0m"
+		echo -e "\033[32m\033[1m  ___  _   ___ ___ \033[0m"
+		echo -e "\033[32m\033[1m | _ \/_\ / __/ __| \033[0m"
+		echo -e "\033[32m\033[1m |  _/ _ \\__ \__ \\ \033[0m"
+		echo -e "\033[32m\033[1m |_|/_/ \_\___/___/ \033[0m"
+		echo ""
+
 		# Update test suite counter
 		if [ -f .tmp_tcsuite_pass_ctr ]; then
 			tmpval=$(< .tmp_tcsuite_pass_ctr)
@@ -845,6 +1264,11 @@
 		fi
 	else
 		echo -e "One or more tests with status  \033[31m\033[1mFAIL\033[0m "
+		echo -e "\033[31m\033[1m  ___ _   ___ _    \033[0m"
+		echo -e "\033[31m\033[1m | __/_\ |_ _| |   \033[0m"
+		echo -e "\033[31m\033[1m | _/ _ \ | || |__ \033[0m"
+		echo -e "\033[31m\033[1m |_/_/ \_\___|____|\033[0m"
+		echo ""
 		# Update test suite counter
 		if [ -f .tmp_tcsuite_fail_ctr ]; then
 			tmpval=$(< .tmp_tcsuite_fail_ctr)
diff --git a/test/mocks/datafilecollector-testharness/common/testsuite_common.sh b/test/mocks/datafilecollector-testharness/common/testsuite_common.sh
index 2476f6c..e35d670 100755
--- a/test/mocks/datafilecollector-testharness/common/testsuite_common.sh
+++ b/test/mocks/datafilecollector-testharness/common/testsuite_common.sh
@@ -50,7 +50,7 @@
     touch .tmp_tcsuite_fail
 }
 
-print_err() {
+__print_err() {
     echo ${FUNCNAME[1]} " "$1" " ${BASH_SOURCE[$i+2]} " line" ${BASH_LINENO[$i+1]}
 }
 
diff --git a/test/mocks/datafilecollector-testharness/dr-sim/Dockerfile b/test/mocks/datafilecollector-testharness/dr-sim/Dockerfile
index 3d95492..da05eed 100644
--- a/test/mocks/datafilecollector-testharness/dr-sim/Dockerfile
+++ b/test/mocks/datafilecollector-testharness/dr-sim/Dockerfile
@@ -1,6 +1,6 @@
 #Common image for both dmmapDR and dmaapDR_redir
 
-FROM node:8
+FROM node:12
 
 WORKDIR /app
 
diff --git a/test/mocks/datafilecollector-testharness/dr-sim/dmaapDR.js b/test/mocks/datafilecollector-testharness/dr-sim/dmaapDR.js
index 5367c9e..f94600a 100644
--- a/test/mocks/datafilecollector-testharness/dr-sim/dmaapDR.js
+++ b/test/mocks/datafilecollector-testharness/dr-sim/dmaapDR.js
@@ -12,6 +12,12 @@
 var certificate = fs.readFileSync('cert/certificate.crt', 'utf8');
 var credentials = {key: privateKey, cert: certificate};
 
+var feeds="1:A";  //Comma separated list of feedId:filePrefix. Default is feedId=1 and file prefix 'A'
+var feedNames=[];
+var filePrefixes=[];
+var feedIndexes=[];
+
+
 //For execution time calculation
 var startTime = Date.now();
 
@@ -32,13 +38,18 @@
 var drr_sim_ip = '127.0.0.1'; //IP for redirect to DR redir sim. Can be changed by env DRR_SIM_IP
 
 //Counters
-var ctr_publish_query = 0;
-var ctr_publish_query_published = 0;
-var ctr_publish_query_not_published = 0;
-var ctr_publish_req = 0;
-var ctr_publish_req_redirect = 0;
-var ctr_publish_req_published = 0;
-var ctr_double_publish = 0
+var ctr_publish_query = [];
+var ctr_publish_query_bad_file_prefix = [];
+var ctr_publish_query_published = [];
+var ctr_publish_query_not_published = [];
+var ctr_publish_req = [];
+var ctr_publish_req_bad_file_prefix = [];
+var ctr_publish_req_redirect = [];
+var ctr_publish_req_published = [];
+var ctr_double_publish = [];
+
+//db of published files
+var published=[];
 
 var parser = new ArgumentParser({
 	  version: '0.0.1',
@@ -124,7 +135,9 @@
 app.use(bodyParser.json({ type: 'application/vnd.api+json' }))
 
 // parse some custom thing into a Buffer (to cater for 60MB files)
-app.use(bodyParser.raw({limit:1024*1024*60, type: 'application/octet-stream' }))
+//Removed-file data not used in this simulator
+//app.use(bodyParser.raw({limit:1024*1024*60, type: 'application/octet-stream' }))
+
 // parse an HTML body into a string
 app.use(bodyParser.text({ type: 'text/html' }))
 
@@ -135,49 +148,190 @@
 	res.send("ok");
 })
 
+function toCommaList(ctrArray) {
+	var str="";
+	for(i=0;i<feedNames.length;i++) {
+		if (i!=0) {
+			str=str+",";
+		}
+		str=str+ctrArray[i];
+	}
+	return str;
+}
+
+function sumList(ctrArray) {
+	var tmp=0;
+	for(i=0;i<feedNames.length;i++) {
+		tmp=tmp+ctrArray[i];
+	}
+	return ""+tmp;
+}
+
+function sumListLength(ctrArray) {
+	var tmp=0;
+	for(i=0;i<feedNames.length;i++) {
+		tmp=tmp+ctrArray[i].length;
+	}
+	return ""+tmp;
+}
+
 //Counter readout
 app.get("/ctr_publish_query",function(req, res){
-	res.send(""+ctr_publish_query);
+	res.send(""+sumList(ctr_publish_query));
 })
+app.get("/feeds/ctr_publish_query",function(req, res){
+	res.send(toCommaList(ctr_publish_query));
+})
+app.get("/ctr_publish_query/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	res.send(""+ctr_publish_query[feedIndexes[feedId]]);
+})
+
+app.get("/ctr_publish_query_bad_file_prefix",function(req, res){
+	res.send(""+sumList(ctr_publish_query_bad_file_prefix));
+})
+app.get("/feeds/ctr_publish_query_bad_file_prefix",function(req, res){
+	res.send(toCommaList(ctr_publish_query_bad_file_prefix));
+})
+app.get("/ctr_publish_query_bad_file_prefix/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	res.send(""+ctr_publish_query_bad_file_prefix[feedIndexes[feedId]]);
+})
+
 app.get("/ctr_publish_query_published",function(req, res){
-	res.send(""+ctr_publish_query_published);
+	res.send(""+sumList(ctr_publish_query_published));
 })
+app.get("/feeds/ctr_publish_query_published",function(req, res){
+	res.send(toCommaList(ctr_publish_query_published));
+})
+app.get("/ctr_publish_query_published/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	res.send(""+ctr_publish_query_published[feedIndexes[feedId]]);
+})
+
 app.get("/ctr_publish_query_not_published",function(req, res){
-	res.send(""+ctr_publish_query_not_published);
+	res.send(""+sumList(ctr_publish_query_not_published));
 })
+app.get("/feeds/ctr_publish_query_not_published",function(req, res){
+	res.send(toCommaList(ctr_publish_query_not_published));
+})
+app.get("/ctr_publish_query_not_published/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	res.send(""+ctr_publish_query_not_published[feedIndexes[feedId]]);
+})
+
 app.get("/ctr_publish_req",function(req, res){
-	res.send(""+ctr_publish_req);
+	res.send(""+sumList(ctr_publish_req));
 })
+app.get("/feeds/ctr_publish_req",function(req, res){
+	res.send(toCommaList(ctr_publish_req));
+})
+app.get("/ctr_publish_req/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	res.send(""+ctr_publish_req[feedIndexes[feedId]]);
+})
+
+app.get("/ctr_publish_req_bad_file_prefix",function(req, res){
+	res.send(""+sumList(ctr_publish_req_bad_file_prefix));
+})
+app.get("/feeds/ctr_publish_req_bad_file_prefix",function(req, res){
+	res.send(toCommaList(ctr_publish_req_bad_file_prefix));
+})
+app.get("/ctr_publish_req_bad_file_prefix/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	res.send(""+ctr_publish_req_bad_file_prefix[feedIndexes[feedId]]);
+})
+
 app.get("/ctr_publish_req_redirect",function(req, res){
-	res.send(""+ctr_publish_req_redirect);
+	res.send(""+sumList(ctr_publish_req_redirect));
 })
+app.get("/feeds/ctr_publish_req_redirect",function(req, res){
+	res.send(toCommaList(ctr_publish_req_redirect));
+})
+app.get("/ctr_publish_req_redirect/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	res.send(""+ctr_publish_req_redirect[feedIndexes[feedId]]);
+})
+
 app.get("/ctr_publish_req_published",function(req, res){
-	res.send(""+ctr_publish_req_published);
+	res.send(""+sumList(ctr_publish_req_published));
 })
+app.get("/feeds/ctr_publish_req_published",function(req, res){
+	res.send(toCommaList(ctr_publish_req_published));
+})
+app.get("/ctr_publish_req_published/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	res.send(""+ctr_publish_req_published[feedIndexes[feedId]]);
+})
+
 app.get("/ctr_published_files",function(req, res){
-	res.send(""+published.length);
+	res.send(""+sumListLength(published));
 })
+app.get("/feeds/ctr_published_files",function(req, res){
+	var str="";
+	for(i=0;i<feedNames.length;i++) {
+		if (i!=0) {
+			str=str+",";
+		}
+		str=str+published[i].length;
+	}
+	res.send(str);
+})
+app.get("/ctr_published_files/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	res.send(""+published[feedIndexes[feedId]].length);
+})
+
 app.get("/tc_info",function(req, res){
 	res.send(args.tc);
 })
 app.get("/ctr_double_publish",function(req, res){
-	res.send(""+ctr_double_publish);
+	res.send(""+sumList(ctr_double_publish));
 })
+app.get("/feeds/ctr_double_publish",function(req, res){
+	var str="";
+	for(i=0;i<feedNames.length;i++) {
+		if (i!=0) {
+			str=str+",";
+		}
+		str=str+ctr_double_publish[i];
+	}
+	res.send(str);
+})
+app.get("/ctr_double_publish/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	res.send(""+ctr_double_publish[feedIndexes[feedId]]);
+})
+
 function fmtMSS(s){
 	return(s-(s%=60))/60+(9<s?':':':0')+s    //Format time diff in mm:ss
 }
 app.get("/execution_time",function(req, res){
-	diff = fmtMSS(Math.floor((Date.now()-startTime)/1000));
+	var diff = fmtMSS(Math.floor((Date.now()-startTime)/1000));
 	res.send(""+diff);
 })
+app.get("/feeds",function(req, res){
+	res.send(feeds);
+})
 
-//db of published files
-var published = [];
+function filenameStartsWith(fileName, feedIndex) {
+	for(i=0;i<filePrefixes[feedIndex].length;i++) {
+		var prefix=filePrefixes[feedIndex][i];
+		if (fileName.startsWith(prefix)) {
+			return true;
+		}
+	}
+	return false;
+}
 
-app.get('/feedlog/1/',function(req, res){
+app.get('/feedlog/:feedId',function(req, res){
 	console.log("url:"+req.url);
-	ctr_publish_query++;
+	var feedId = req.params.feedId;
+	ctr_publish_query[feedIndexes[feedId]]++;
 	var filename = req.query.filename;
+	if (!filenameStartsWith(filename, feedIndexes[feedId])) {
+		ctr_publish_query_bad_file_prefix[feedIndexes[feedId]]++;
+	}
 	console.log(filename);
 	var qtype = req.query.type;
 	if(typeof(filename) == 'undefined'){
@@ -187,41 +341,41 @@
 		res.status(400).send({error: 'No type provided.'});
 		return;
 	}
-	
+	var ctr = ctr_publish_query[feedIndexes[feedId]];
 	//Ugly fix, plus signs replaces with spaces in query params....need to put them back
 	filename = filename.replace(/ /g,"+");
-	
+
 	var sleeptime=0;
 	if (args.tc==tc_normal) {
 		sleeptime=0;
-	} else if (args.tc==tc_10p_no_response && (ctr_publish_query%10) == 0) {
+	} else if (args.tc==tc_10p_no_response && (ctr%10) == 0) {
 		return;
-	} else if (args.tc==tc_10first_no_response && ctr_publish_query<11) {
+	} else if (args.tc==tc_10first_no_response && ctr<11) {
 		return;
-	} else if (args.tc==tc_100first_no_response && ctr_publish_query<101) {
+	} else if (args.tc==tc_100first_no_response && ctr<101) {
 		return;
 	} else if (args.tc==tc_all_delay_1s) {
 		sleeptime=1000;
 	} else if (args.tc==tc_all_delay_10s) {
 		sleeptime=10000;
-	} else if (args.tc==tc_10p_delay_10s && (ctr_publish_query%10) == 0) {
+	} else if (args.tc==tc_10p_delay_10s && (ctr%10) == 0) {
 		sleeptime=10000;
-	} else if (args.tc==tc_10p_error_response && (ctr_publish_query%10) == 0) {
+	} else if (args.tc==tc_10p_error_response && (ctr%10) == 0) {
 		res.send(400);
 		return;
-	} else if (args.tc==tc_10first_error_response && ctr_publish_query<11) {
+	} else if (args.tc==tc_10first_error_response && ctr<11) {
 		res.send(400);
 		return;
-	} else if (args.tc==tc_100first_error_response & ctr_publish_query<101) {
+	} else if (args.tc==tc_100first_error_response & ctr<101) {
 		res.send(400);
 		return;
 	}
 
-	if (published.includes(filename)) {
-		ctr_publish_query_published++;
+	if (published[feedIndexes[feedId]].includes(filename)) {
+		ctr_publish_query_published[feedIndexes[feedId]]++;
 		strToSend="[" + filename + "]";
 	} else {
-		ctr_publish_query_not_published++;
+		ctr_publish_query_not_published[feedIndexes[feedId]]++;
 		strToSend="[]";
 	}
 	if (sleeptime > 0) {
@@ -234,68 +388,73 @@
 });
 
 
-app.put('/publish/1/:filename', function (req, res) {
+app.put('/publish/:feedId/:filename', function (req, res) {
 	console.log("url:"+req.url);
-	console.log("body (first 25 bytes):"+req.body.slice(0,25));
+//	console.log("body (first 25 bytes):"+req.body.slice(0,25));
 	console.log("headers:"+req.headers);
-	ctr_publish_req++;
+	console.log(JSON.stringify(req.headers));
+	var feedId = req.params.feedId;
+	ctr_publish_req[feedIndexes[feedId]]++;
 
 	var filename = req.params.filename;
 	console.log(filename);
-
+	if (!filenameStartsWith(filename, feedIndexes[feedId])) {
+		ctr_publish_req_bad_file_prefix[feedIndexes[feedId]]++;
+	}
+    var ctr = ctr_publish_req[feedIndexes[feedId]];
 	if (args.tc==tc_normal) {
 	// Continue
 	} else if (args.tc==tc_none_published) {
-		ctr_publish_req_redirect++;
-		res.redirect(301, 'http://' + drr_sim_ip + ':3908/publish/1/'+filename);
+		ctr_publish_req_redirect[feedIndexes[feedId]]++;
+		res.redirect(301, 'http://' + drr_sim_ip + ':3908/publish/'+feedId+'/'+filename);
 		return;
 	} else if (args.tc==tc_all_published) {
-		ctr_publish_req_published++;
+		ctr_publish_req_published[feedIndexes[feedId]]++;
 		res.send("ok");
 		return;
-	}else if (args.tc==tc_10p_no_response && (ctr_publish_req%10) == 0) {
+	}else if (args.tc==tc_10p_no_response && (ctr%10) == 0) {
 		return;
-	} else if (args.tc==tc_10first_no_response && ctr_publish_req<11) {
+	} else if (args.tc==tc_10first_no_response && ctr<11) {
 		return;
-	} else if (args.tc==tc_100first_no_response && ctr_publish_req<101) {
+	} else if (args.tc==tc_100first_no_response && ctr<101) {
 		return;
 	} else if (args.tc==tc_all_delay_1s) {
-		do_publish_delay(res, filename, 1000);
+		do_publish_delay(res, filename, 1000, feedId);
 		return;
 	} else if (args.tc==tc_all_delay_10s) {
-		do_publish_delay(res, filename, 10000);
+		do_publish_delay(res, filename, 10000, feedId);
 		return;
-	} else if (args.tc==tc_10p_delay_10s && (ctr_publish_req%10) == 0) {
-		do_publish_delay(res, filename, 10000);
+	} else if (args.tc==tc_10p_delay_10s && (ctr%10) == 0) {
+		do_publish_delay(res, filename, 10000, feedId);
 		return;
-	} else if (args.tc==tc_10p_error_response && (ctr_publish_req%10) == 0) {
+	} else if (args.tc==tc_10p_error_response && (ctr%10) == 0) {
 		res.send(400);
 		return;
-	} else if (args.tc==tc_10first_error_response && ctr_publish_req<11) {
+	} else if (args.tc==tc_10first_error_response && ctr<11) {
 		res.send(400);
 		return;
-	} else if (args.tc==tc_100first_error_response & ctr_publish_req<101) {
+	} else if (args.tc==tc_100first_error_response & ctr<101) {
 		res.send(400);
 		return;
 	}
 	if (!published.includes(filename)) {
-		ctr_publish_req_redirect++;
-		res.redirect(301, 'http://'+drr_sim_ip+':3908/publish/1/'+filename);
+		ctr_publish_req_redirect[feedIndexes[feedId]]++;
+		res.redirect(301, 'http://'+drr_sim_ip+':3908/publish/'+feedId+'/'+filename);
 	} else {
-		ctr_publish_req_published++;
+		ctr_publish_req_published[feedIndexes[feedId]]++;
 		res.send("ok");
 	}
 	return;
 })
 
-function do_publish_delay(res, filename, sleeptime) {
+function do_publish_delay(res, filename, sleeptime, feedId) {
 	if (!published.includes(filename)) {
-		ctr_publish_req_redirect++;
+		ctr_publish_req_redirect[feedIndexes[feedId]]++;
 		sleep(1000).then(() => {
-			res.redirect(301, 'http://'+drr_sim_ip+':3908/publish/1/'+filename);
+			res.redirect(301, 'http://'+drr_sim_ip+':3908/publish/'+feedId+'/'+filename);
 		});
 	} else {
-		ctr_publish_req_published++;
+		ctr_publish_req_published[feedIndexes[feedId]]++;
 		sleep(1000).then(() => {
 			res.send("ok");
 		});
@@ -303,17 +462,18 @@
 }
 
 //Callback from DR REDIR server, when file is published ok this PUT request update the list of published files.
-app.put('/dr_redir_publish/:filename', function (req, res) {
+app.put('/dr_redir_publish/:feedId/:filename', function (req, res) {
 	console.log("url:"+req.url);
+	var feedId = req.params.feedId;
 	var filename = req.params.filename;
 	console.log(filename);
 
-	if (!published.includes(filename)) {
+	if (!published[feedIndexes[feedId]].includes(filename)) {
 		console.log("File marked as published by callback from DR redir SIM. url: " + req.url);
-		published.push(filename);
+		published[feedIndexes[feedId]].push(filename);
 	} else {
 		console.log("File already marked as published. Callback from DR redir SIM. url: " + req.url);
-		ctr_double_publish = ctr_double_publish+1;
+		ctr_double_publish[feedIndexes[feedId]]++;
 	}
 
 	res.send("ok");
@@ -331,5 +491,42 @@
 
 if (process.env.DRR_SIM_IP) {
 	drr_sim_ip=process.env.DRR_SIM_IP;
-} 
-console.log("Using IP " + drr_sim_ip + " for redirect to DR redir sim");
\ No newline at end of file
+}
+console.log("Using IP " + drr_sim_ip + " for redirect to DR redir sim");
+
+if (process.env.DR_FEEDS) {
+	feeds=process.env.DR_FEEDS;
+}
+
+console.log("Configured list of feeds mapped to file name prefixes: " + feeds);
+
+feedNames=feeds.split(',');
+for(i=0;i<feedNames.length;i++) {
+	var tmp=feedNames[i].split(':');
+	feedNames[i]=tmp[0].trim();
+	feedIndexes[feedNames[i]]=i;
+	filePrefixes[i]=[]
+	for(j=1;j<tmp.length;j++) {
+		filePrefixes[i][j-1]=tmp[j];
+	}
+
+    ctr_publish_query[i] = 0;
+    ctr_publish_query_published[i] = 0;
+    ctr_publish_query_not_published[i] = 0;
+    ctr_publish_req[i] = 0;
+    ctr_publish_req_redirect[i] = 0;
+    ctr_publish_req_published[i] = 0;
+    ctr_double_publish[i] = 0;
+    ctr_publish_query_bad_file_prefix[i] = 0;
+	ctr_publish_req_bad_file_prefix[i] = 0;
+	published[i] = [];
+}
+
+console.log("Parsed mapping between feed id and file name prefix");
+for(i=0;i<feedNames.length;i++) {
+	var fn = feedNames[i];
+	for (j=0;j<filePrefixes[i].length;j++) {
+		console.log("Feed id: " + fn + ", file name prefix: " + filePrefixes[i][j]);
+	}
+}
+
diff --git a/test/mocks/datafilecollector-testharness/dr-sim/dmaapDR_redir.js b/test/mocks/datafilecollector-testharness/dr-sim/dmaapDR_redir.js
index 970c183..a5f1beb 100644
--- a/test/mocks/datafilecollector-testharness/dr-sim/dmaapDR_redir.js
+++ b/test/mocks/datafilecollector-testharness/dr-sim/dmaapDR_redir.js
@@ -14,6 +14,15 @@
 var certificate = fs.readFileSync('cert/certificate.crt', 'utf8');
 var credentials = {key: privateKey, cert: certificate};
 
+var total_first_publish=0;
+var total_last_publish=0
+var total_files=0;
+var speed=0;
+
+var feeds="1:A";  //Comma separated list of feedId:filePrefix. Default is feedId=1 and file prefix 'A'
+var feedNames=[];
+var filePrefixes=[];
+var feedIndexes=[];
 
 var bodyParser = require('body-parser')
 var startTime = Date.now();
@@ -21,10 +30,11 @@
 var dr_callback_ip = '192.168.100.2'; //IP for DR when running as container. Can be changed by env DR_SIM_IP
 
 //Counters
-var ctr_publish_requests = 0;
-var ctr_publish_responses = 0;
-var lastPublish = "";
-var dwl_volume = 0;
+var ctr_publish_requests = [];
+var ctr_publish_requests_bad_file_prefix = [];
+var ctr_publish_responses = [];
+var lastPublish = [];
+var dwl_volume = [];
 
 var parser = new ArgumentParser({
 	version: '0.0.1',
@@ -134,66 +144,194 @@
 	res.send("ok");
 })
 
+function toCommaList(ctrArray) {
+	var str="";
+	for(i=0;i<feedNames.length;i++) {
+		if (i!=0) {
+			str=str+",";
+		}
+		str=str+ctrArray[i];
+	}
+	return str;
+}
+
+function toCommaListTime(ctrArray) {
+	var str="";
+	for(i=0;i<feedNames.length;i++) {
+		if (i!=0) {
+			str=str+",";
+		}
+		if (ctrArray[i] < 0) {
+			str=str+"--:--";
+		} else {
+			str=str+fmtMSS(ctrArray[i]);
+		}
+	}
+	return str;
+}
+
+function sumList(ctrArray) {
+	var tmp=0;
+	for(i=0;i<feedNames.length;i++) {
+		tmp=tmp+ctrArray[i];
+	}
+	return ""+tmp;
+}
+
+function largestInListTime(ctrArray) {
+	var tmp=-1;
+	var str=""
+	for(i=0;i<feedNames.length;i++) {
+		if (ctrArray[i] > tmp) {
+			tmp = ctrArray[i];
+		}
+	}
+	if (tmp < 0) {
+		str="--:--";
+	} else {
+		str=fmtMSS(tmp);
+	}
+	return str;
+}
+
 //Counter readout
 app.get("/ctr_publish_requests",function(req, res){
-	res.send(""+ctr_publish_requests);
+	res.send(""+sumList(ctr_publish_requests));
 })
+app.get("/feeds/ctr_publish_requests/",function(req, res){
+	res.send(toCommaList(ctr_publish_requests));
+})
+app.get("/ctr_publish_requests/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	res.send(""+ctr_publish_requests[feedIndexes[feedId]]);
+})
+
+app.get("/ctr_publish_requests_bad_file_prefix",function(req, res){
+	res.send(""+sumList(ctr_publish_requests_bad_file_prefix));
+})
+app.get("/feeds/ctr_publish_requests_bad_file_prefix/",function(req, res){
+	res.send(toCommaList(ctr_publish_requests_bad_file_prefix));
+})
+app.get("/ctr_publish_requests_bad_file_prefix/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	res.send(""+ctr_publish_requests_bad_file_prefix[feedIndexes[feedId]]);
+})
+
 app.get("/ctr_publish_responses",function(req, res){
-	res.send(""+ctr_publish_responses);
+	res.send(""+sumList(ctr_publish_responses));
 })
+app.get("/feeds/ctr_publish_responses/",function(req, res){
+	res.send(toCommaList(ctr_publish_responses));
+})
+app.get("/ctr_publish_responses/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	res.send(""+ctr_publish_responses[feedIndexes[feedId]]);
+})
+
 app.get("/execution_time",function(req, res){
-	diff = fmtMSS(Math.floor((Date.now()-startTime)/1000));
+	var diff = fmtMSS(Math.floor((Date.now()-startTime)/1000));
 	res.send(""+diff);
 })
 app.get("/time_lastpublish",function(req, res){
-	res.send(""+lastPublish);
+	res.send(""+largestInListTime(lastPublish));
 })
+app.get("/feeds/time_lastpublish/",function(req, res){
+	res.send(toCommaListTime(lastPublish));
+})
+app.get("/time_lastpublish/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	if (lastPublish[feedIndexes[feedId]] < 0) {
+		res.send("--:--");
+	}
+	res.send(""+fmtMSS(lastPublish[feedIndexes[feedId]]));
+})
+
 app.get("/dwl_volume",function(req, res){
-	res.send(""+fmtLargeNumber(dwl_volume));
+	res.send(""+fmtLargeNumber(sumList(dwl_volume)));
 })
+app.get("/feeds/dwl_volume/",function(req, res){
+	var str="";
+	for(i=0;i<feedNames.length;i++) {
+		if (i!=0) {
+			str=str+",";
+		}
+		str=str+fmtLargeNumber(dwl_volume[i]);
+	}
+	res.send(str);
+})
+app.get("/dwl_volume/:feedId",function(req, res){
+	var feedId = req.params.feedId;
+	res.send(""+fmtLargeNumber(dwl_volume[feedIndexes[feedId]]));
+})
+
 app.get("/tc_info",function(req, res){
 	res.send(args.tc);
 })
 
-app.put('/publish/1/:filename', function (req, res) {
+app.get("/feeds",function(req, res){
+	res.send(feeds);
+})
+
+app.get("/speed",function(req, res){
+	res.send(""+speed);
+})
+
+function filenameStartsWith(fileName, feedIndex) {
+	var i=0;
+	for(i=0;i<filePrefixes[feedIndex].length;i++) {
+		var prefix=filePrefixes[feedIndex][i];
+		if (fileName.startsWith(prefix)) {
+			return true;
+		}
+	}
+	return false;
+}
+
+app.put('/publish/:feedId/:filename', function (req, res) {
+
 	console.log(req.url);
-	console.log("First 25 bytes of body: " + req.body.slice(0,25))
+	var feedId=req.params.feedId;
+//	console.log("First 25 bytes of body: " + req.body.slice(0,25))
 	console.log(req.headers)
-	ctr_publish_requests++;
+	ctr_publish_requests[feedIndexes[feedId]]++;
+	var filename = req.params.filename;
+	if (!filenameStartsWith(filename, feedIndexes[feedId])) {
+		ctr_publish_requests_bad_file_prefix[feedIndexes[feedId]]++;
+	}
+	var ctr = ctr_publish_requests[feedIndexes[feedId]];
 	if (args.tc == tc_no_publish) {
-		tr_publish_responses++;
+		ctr_publish_responses[feedIndexes[feedId]]++;
 		res.send("ok")
 		return;
-	} else if (args.tc==tc_10p_no_response && (ctr_publish_requests%10)==0) {
+	} else if (args.tc==tc_10p_no_response && (ctr%10)==0) {
 		return;
-	} else if (args.tc==tc_10first_no_response && ctr_publish_requests<11) {
+	} else if (args.tc==tc_10first_no_response && ctr<11) {
 		return;
-	} else if (args.tc==tc_100first_no_response && ctr_publish_requests<101) {
+	} else if (args.tc==tc_100first_no_response && ctr<101) {
 		return;
-	} else if (args.tc==tc_10p_error_response && (ctr_publish_requests%10)==0) {
-		tr_publish_responses++;
+	} else if (args.tc==tc_10p_error_response && (ctr%10)==0) {
+		ctr_publish_responses[feedIndexes[feedId]]++;
 		res.send(400, "");
 		return;
-	} else if (args.tc==tc_10first_error_response && ctr_publish_requests<11) {
-		tr_publish_responses++;
+	} else if (args.tc==tc_10first_error_response && ctr<11) {
+		ctr_publish_responses[feedIndexes[feedId]]++;
 		res.send(400, "");
 		return;
-	} else if (args.tc==tc_100first_error_response && ctr_publish_requests<101) {
-		tr_publish_responses++;
+	} else if (args.tc==tc_100first_error_response && ctr<101) {
+		ctr_publish_responses[feedIndexes[feedId]]++;
 		res.send(400, "");
 		return;
 	}
 
 	//Remaining part if normal file publish
 
-	var filename = req.params.filename;
 	console.log(filename);
-	//Create filename (appending file size to name) to store
-  	var storedFilename = path.resolve(__dirname, filename+"-"+req.body.length); 
+	//Create filename (appending file size and feedid to name) to store
+  	var storedFilename = path.resolve(__dirname, filename+"-"+feedId+"-"+req.body.length); 
   	fs.writeFile(storedFilename, "", function (error) {  //Store file with zero size
   		if (error) { console.error(error); }
 	});
-	
+
 	//Make callback to update list of publish files in DR sim
 	//Note the hard code ip-adress, DR sim get this ip if simulators started from the
 	//script in the 'simulatorgroup' dir.
@@ -201,24 +339,23 @@
 	var util = require('util');
 	var exec = require('child_process').exec;
 
-	var command = 'curl -s -X PUT http://' + dr_callback_ip + ':3906/dr_redir_publish/' +req.params.filename;
+	var command = 'curl -s -X PUT http://' + dr_callback_ip + ':3906/dr_redir_publish/'+feedId+'/'+filename;
 
 	console.log("Callback to DR sim to report file published, cmd: " + command);
-	child = exec(command, function(error, stdout, stderr){
+	var child = exec(command, function(error, stdout, stderr){
 		console.log('stdout: ' + stdout);
 		console.log('stderr: ' + stderr);
 		if(error !== null) {
 			console.log('exec error: ' + error);
 		}
-		
 	});
 
 	//Update status variables
-	ctr_publish_responses++;
-	lastPublish = fmtMSS(Math.floor((Date.now()-startTime)/1000));
-	dwl_volume = dwl_volume + req.body.length;
+	ctr_publish_responses[feedIndexes[feedId]]++;
+	lastPublish[feedIndexes[feedId]] = Math.floor((Date.now()-startTime)/1000);
+	dwl_volume[feedIndexes[feedId]] = dwl_volume[feedIndexes[feedId]] + req.body.length;
 
-	if (args.tc==tc_10p_delay_10s && (ctr_publish_requests%10)==0) {
+	if (args.tc==tc_10p_delay_10s && (ctr%10)==0) {
         sleep(10000).then(() => {
 			res.send("ok");
 		});
@@ -234,6 +371,15 @@
 		});
 		return;
 	}
+	if (total_first_publish == 0) {
+		total_first_publish=Date.now()/1000;
+	}
+	total_last_publish=Date.now()/1000;
+	total_files++;
+	if (total_last_publish > total_first_publish) {
+		speed = Math.round((total_files/(total_last_publish-total_first_publish))*10)/10;
+	}
+
 	res.send("ok")
 });
 
@@ -250,5 +396,36 @@
 
 if (process.env.DR_SIM_IP) {
 	dr_callback_ip=process.env.DR_SIM_IP;
-} 
+}
 console.log("Using IP " + dr_callback_ip + " for callback to DR sim");
+
+if (process.env.DR_REDIR_FEEDS) {
+	feeds=process.env.DR_REDIR_FEEDS;
+}
+console.log("Configured list of feeds: " + feeds);
+
+var i=0;
+feedNames=feeds.split(',');
+for(i=0;i<feedNames.length;i++) {
+	var tmp=feedNames[i].split(':');
+	feedNames[i]=tmp[0].trim();
+	feedIndexes[feedNames[i]]=i;
+	filePrefixes[i]=[]
+	var j=0;
+	for(j=1;j<tmp.length;j++) {
+		filePrefixes[i][j-1]=tmp[j];
+	}
+
+	ctr_publish_requests[i] = 0;
+	ctr_publish_requests_bad_file_prefix[i] = 0;
+	ctr_publish_responses[i] = 0;
+	lastPublish[i] = -1;
+	dwl_volume[i] = 0;
+}
+console.log("Parsed mapping between feed id and file name prefix");
+for(i=0;i<feedNames.length;i++) {
+	var fn = feedNames[i];
+	for (j=0;j<filePrefixes[i].length;j++) {
+		console.log("Feed id: " + fn + ", file name prefix: " + filePrefixes[i][j]);
+	}
+}
diff --git a/test/mocks/datafilecollector-testharness/ftps-sftp-server/Dockerfile-ftps b/test/mocks/datafilecollector-testharness/ftps-sftp-server/Dockerfile-ftps
new file mode 100644
index 0000000..736314c
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/ftps-sftp-server/Dockerfile-ftps
@@ -0,0 +1,18 @@
+FROM docker.io/panubo/vsftpd
+
+
+COPY tls/ftp.crt /etc/ssl/private/ftp.crt
+RUN chmod 644 /etc/ssl/private/ftp.crt
+RUN chown root:root /etc/ssl/private/ftp.crt
+
+COPY tls/ftp.key /etc/ssl/private/ftp.key
+RUN chmod 644 /etc/ssl/private/ftp.key
+RUN chown root:root /etc/ssl/private/ftp.key
+
+COPY tls/dfc.crt /etc/ssl/private/dfc.crt
+RUN chmod 644 /etc/ssl/private/dfc.crt
+RUN chown root:root /etc/ssl/private/dfc.crt
+
+COPY configuration/vsftpd_ssl.conf /etc/vsftpd_ssl.conf
+RUN chmod 644 /etc/vsftpd_ssl.conf
+RUN chown root:root /etc/vsftpd_ssl.conf
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/ftps-sftp-server/configuration/vsftpd_ssl.conf b/test/mocks/datafilecollector-testharness/ftps-sftp-server/configuration/vsftpd_ssl.conf
index 99d64dc..6946bff 100644
--- a/test/mocks/datafilecollector-testharness/ftps-sftp-server/configuration/vsftpd_ssl.conf
+++ b/test/mocks/datafilecollector-testharness/ftps-sftp-server/configuration/vsftpd_ssl.conf
@@ -34,8 +34,8 @@
 connect_from_port_20=NO
 listen=YES
 tcp_wrappers=YES
-pasv_min_port=8001
-pasv_max_port=8010
+#pasv_min_port=8001
+#pasv_max_port=8010
 
 # SSL
 ssl_enable=Yes
diff --git a/test/mocks/datafilecollector-testharness/mr-sim/README.md b/test/mocks/datafilecollector-testharness/mr-sim/README.md
index 7ec6e14..5e6ac6d 100644
--- a/test/mocks/datafilecollector-testharness/mr-sim/README.md
+++ b/test/mocks/datafilecollector-testharness/mr-sim/README.md
@@ -1,3 +1,84 @@
+#MR-simulator 
+This readme contains:
+
+**Introduction**
+
+**Building and running**
+
+**Configuration**
+
+###Introduction###
+The MR-sim is a python script delivering batches of events including one or more fileReady for one or more PNFs.
+It is possible to configure number of events, PNFs, consumer groups, exising or missing files, file prefixes and change identifier.
+In addition, MR sim can be configured to deliver file url for up to 5 FTP servers (simulating the PNFs).
+
+###Building and running###
+It is possible build and run MR-sim manually as a container if needed. In addition MR-sim can be executed as python script, see instuctions further down.
+Otherwise it is recommended to use the test scripts in the auto-test dir or run all simulators in one go using scripts in the simulator-group dir.
+
+To build and run manually as a docker container:
+1. Build docker container with ```docker build -t mrsim:latest .```
+2. Run the container ```docker-compose up```
+
+###Configuration###
+The event pattern, called TC, of the MR-sim is controlled with a arg to python script. See section TC info for available patterns.
+All other configuration is done via envrionment variables.
+The simulator listens to port 2222.
+
+The following envrionment vaiables are used:
+**FTPS_SIMS** - A comma-separated list of hostname:port for the FTP servers to generate ftps file urls for. If not set MR sim will assume 'localhost:21'. Minimum 1 and maximum 5 host-port pairs can be given.
+**SFTP_SIMS** - A comma-separated list of hostname:port for the FTP servers to generate sftp file urls for. If not set MR sim will assume 'localhost:1022'. Minimum 1 and maximum 5 host-port pairs can be given.
+**NUM_FTP_SERVERS** - Number of FTP servers to use out of those specified in the envrioment variables above. The number shall be in the range 1-5.
+**MR_GROUPS** - A comma-separated list of consummer-group:changeId[:changeId]*. Defines which change identifier that should be used for each consumer gropu. If not set the MR-sim will assume 'OpenDcae-c12:PM_MEAS_FILES'.
+**MR_FILE_PREFIX_MAPPING** - A comma-separated list of changeId:filePrefix. Defines which file prefix to use for each change identifier, needed to distinguish files for each change identifiers. If not set the MR-sim will assume 'PM_MEAS_FILES:A
+
+
+
+###Statistics read-out and commands###
+The simulator can be queried for statistics  and  started/stopped (use curl from cmd line or open in browser, curl used below):
+
+`curl localhost:2222` - Just returns 'Hello World'.
+
+`curl localhost:2222/groups` - Return a comma-separated list of configured consumer groups..
+
+`curl localhost:2222/changeids` - Return a commar-separated list of configured change id sets, where each set is a list of colon-separated change for each configured consumer group.
+
+`curl localhost:2222/fileprefixes` - Return the setting of env var MR_FILE_PREFIX_MAPPING.
+
+`curl localhost:2222/ctr_requests`   - return an integer of the number of get request to the event poll path
+
+`curl localhost:2222/groups/ctr_requests`   - return an integer of the number of get requests, for all consumer groups, to the event poll path
+
+`curl localhost:2222/ctr_requests/<consumer-group>`   - return an integer of the number of get requests, for the specified consumer group, to the event poll path
+
+
+
+
+
+
+
+`curl localhost:2222/ctr_responses`  - return an integer of the number of get responses to the event poll path
+
+`curl localhost:2222/ctr_files` - returns an integer or the number files.  
+
+`curl localhost:2222/ctr_unique_files` - returns an integer or the number of unique files. A unique file is the combination of node+file_sequence_number 
+
+`curl localhost:2222/tc_info` - returns the tc string (as given on the cmd line)
+
+`curl localhost:2222/ctr_events` - returns the total number of events
+
+`curl localhost:2222/execution_time` - returns the execution time in mm:ss
+
+`curl localhost:2222/exe_time_first_poll` - returns the execution time in mm:ss from the first poll
+
+`curl localhost:2222/ctr_unique_PNFs` - return the number of unique PNFS in alla events.
+
+`curl localhost:2222/start` - start event delivery (default status).
+
+`curl localhost:2222/stop` - stop event delivery.
+
+`curl localhost:2222/status` - Return the started or stopped status.
+
 
 #Alternative to running python (as described below) on your machine, use the docker files.
 1. Build docker container with ```docker build -t mrsim:latest .```
diff --git a/test/mocks/datafilecollector-testharness/mr-sim/mr-sim.py b/test/mocks/datafilecollector-testharness/mr-sim/mr-sim.py
index 219415a..eefc61e 100644
--- a/test/mocks/datafilecollector-testharness/mr-sim/mr-sim.py
+++ b/test/mocks/datafilecollector-testharness/mr-sim/mr-sim.py
@@ -14,8 +14,25 @@
 HOST_IP = "0.0.0.0"
 HOST_PORT = 2222
 
-SFTP_PORT = 1022
-FTPS_PORT = 21
+sftp_hosts=[]
+sftp_ports=[]
+ftps_hosts=[]
+ftps_ports=[]
+num_ftp_servers=0
+
+def sumList(ctrArray):
+    tmp=0
+    for i in range(len(ctrArray)):
+        tmp=tmp+ctrArray[i];
+
+    return str(tmp);
+
+def sumListLength(ctrArray):
+    tmp=0
+    for i in range(len(ctrArray)):
+        tmp=tmp+len(ctrArray[i]);
+
+    return str(tmp);
 
 #Test function to check server running
 @app.route('/',
@@ -23,33 +40,140 @@
 def index():
     return 'Hello world'
 
+#Returns the list of configured groups
+@app.route('/groups',
+    methods=['GET'])
+def group_ids():
+    global configuredGroups
+    return configuredGroups
+
+#Returns the list of configured changeids
+@app.route('/changeids',
+    methods=['GET'])
+def change_ids():
+    global configuredChangeIds
+    return configuredChangeIds
+
+#Returns the list of configured fileprefixes
+@app.route('/fileprefixes',
+    methods=['GET'])
+def fileprefixes():
+    global configuredPrefixes
+    return configuredPrefixes
+
+
 #Returns number of polls
 @app.route('/ctr_requests',
     methods=['GET'])
 def counter_requests():
     global ctr_requests
-    return str(ctr_requests)
+    return sumList(ctr_requests)
 
-#Returns number of replies
+#Returns number of polls for all groups
+@app.route('/groups/ctr_requests',
+    methods=['GET'])
+def group_counter_requests():
+    global ctr_requests
+    global groupNames
+    tmp=''
+    for i in range(len(groupNames)):
+        if (i > 0):
+            tmp=tmp+','
+        tmp=tmp+str(ctr_requests[i])
+    return tmp
+
+#Returns the total number of polls for a group
+@app.route('/ctr_requests/<groupId>',
+    methods=['GET'])
+def counter_requests_group(groupId):
+    global ctr_requests
+    global groupNameIndexes
+    return str(ctr_requests[groupNameIndexes[groupId]])
+
+#Returns number of poll replies
 @app.route('/ctr_responses',
     methods=['GET'])
 def counter_responses():
     global ctr_responses
-    return str(ctr_responses)
+    return sumList(ctr_responses)
 
-#Returns the total number of file
+#Returns number of poll replies for all groups
+@app.route('/groups/ctr_responses',
+    methods=['GET'])
+def group_counter_responses():
+    global ctr_responses
+    global groupNames
+    tmp=''
+    for i in range(len(groupNames)):
+        if (i > 0):
+            tmp=tmp+','
+        tmp=tmp+str(ctr_responses[i])
+    return tmp
+
+#Returns the total number of poll replies for a group
+@app.route('/ctr_responses/<groupId>',
+    methods=['GET'])
+def counter_responses_group(groupId):
+    global ctr_responses
+    global groupNameIndexes
+    return str(ctr_responses[groupNameIndexes[groupId]])
+
+#Returns the total number of files
 @app.route('/ctr_files',
     methods=['GET'])
 def counter_files():
     global ctr_files
-    return str(ctr_files)
+    return sumList(ctr_files)
+
+#Returns the total number of file for all groups
+@app.route('/groups/ctr_files',
+    methods=['GET'])
+def group_counter_files():
+    global ctr_files
+    global groupNames
+    tmp=''
+    for i in range(len(groupNames)):
+        if (i > 0):
+            tmp=tmp+','
+        tmp=tmp+str(ctr_files[i])
+    return tmp
+
+#Returns the total number of files for a group
+@app.route('/ctr_files/<groupId>',
+    methods=['GET'])
+def counter_files_group(groupId):
+    global ctr_files
+    global groupNameIndexes
+    return str(ctr_files[groupNameIndexes[groupId]])
+
 
 #Returns number of unique files
 @app.route('/ctr_unique_files',
     methods=['GET'])
 def counter_uniquefiles():
     global fileMap
-    return str(len(fileMap))
+    return sumListLength(fileMap)
+
+#Returns number of unique files for all groups
+@app.route('/groups/ctr_unique_files',
+    methods=['GET'])
+def group_counter_uniquefiles():
+    global fileMap
+    global groupNames
+    tmp=''
+    for i in range(len(groupNames)):
+        if (i > 0):
+            tmp=tmp+','
+        tmp=tmp+str(len(fileMap[i]))
+    return tmp
+
+#Returns the total number of unique files for a group
+@app.route('/ctr_unique_files/<groupId>',
+    methods=['GET'])
+def counter_uniquefiles_group(groupId):
+    global fileMap
+    global groupNameIndexes
+    return str(len(fileMap[groupNameIndexes[groupId]]))
 
 #Returns tc info
 @app.route('/tc_info',
@@ -63,7 +187,28 @@
     methods=['GET'])
 def counter_events():
     global ctr_events
-    return str(ctr_events)
+    return sumList(ctr_events)
+
+#Returns number of events for all groups
+@app.route('/groups/ctr_events',
+    methods=['GET'])
+def group_counter_events():
+    global ctr_events
+    global groupNames
+    tmp=''
+    for i in range(len(groupNames)):
+        if (i > 0):
+            tmp=tmp+','
+        tmp=tmp+str(ctr_events[i])
+    return tmp
+
+#Returns the total number of events for a group
+@app.route('/ctr_events/<groupId>',
+    methods=['GET'])
+def counter_events_group(groupId):
+    global ctr_events
+    global groupNameIndexes
+    return str(ctr_events[groupNameIndexes[groupId]])
 
 #Returns execution time in mm:ss
 @app.route('/execution_time',
@@ -81,9 +226,44 @@
 def exe_time_first_poll():
     global firstPollTime
 
-    if (firstPollTime == 0):
+    tmp = 0
+    for i in range(len(groupNames)):
+        if (firstPollTime[i] > tmp):
+            tmp = firstPollTime[i]
+
+    if (tmp == 0):
         return "--:--"
-    minutes, seconds = divmod(time.time()-firstPollTime, 60)
+    minutes, seconds = divmod(time.time()-tmp, 60)
+    return "{:0>2}:{:0>2}".format(int(minutes),int(seconds))
+
+#Returns the timestamp for first poll for all groups
+@app.route('/groups/exe_time_first_poll',
+    methods=['GET'])
+def group_exe_time_first_poll():
+    global firstPollTime
+    global groupNames
+
+    tmp=''
+    for i in range(len(groupNames)):
+        if (i > 0):
+            tmp=tmp+','
+        if (firstPollTime[i] == 0):
+            tmp=tmp+ "--:--"
+        else:
+            minutes, seconds = divmod(time.time()-firstPollTime[i], 60)
+            tmp=tmp+"{:0>2}:{:0>2}".format(int(minutes),int(seconds))
+    return tmp
+
+#Returns the timestamp for first poll for a group
+@app.route('/exe_time_first_poll/<groupId>',
+    methods=['GET'])
+def exe_time_first_poll_group(groupId):
+    global ctr_requests
+    global groupNameIndexes
+
+    if (firstPollTime[groupNameIndexes[groupId]] == 0):
+        return "--:--"
+    minutes, seconds = divmod(time.time()-firstPollTime[groupNameIndexes[groupId]], 60)
     return "{:0>2}:{:0>2}".format(int(minutes),int(seconds))
 
 #Starts event delivery
@@ -114,525 +294,660 @@
     methods=['GET'])
 def counter_uniquePNFs():
     global pnfMap
-    return str(len(pnfMap))
+    return sumListLength(pnfMap)
+
+#Returns number of unique PNFs for all groups
+@app.route('/groups/ctr_unique_PNFs',
+    methods=['GET'])
+def group_counter_uniquePNFs():
+    global pnfMap
+    global groupNames
+    tmp=''
+    for i in range(len(groupNames)):
+        if (i > 0):
+            tmp=tmp+','
+        tmp=tmp+str(len(pnfMap[i]))
+    return tmp
+
+#Returns the unique PNFs for a group
+@app.route('/ctr_unique_PNFs/<groupId>',
+    methods=['GET'])
+def counter_uniquePNFs_group(groupId):
+    global pnfMap
+    global groupNameIndexes
+    return str(len(pnfMap[groupNameIndexes[groupId]]))
+
 
 #Messages polling function
 @app.route(
-    "/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12",
+    "/events/unauthenticated.VES_NOTIFICATION_OUTPUT/<consumerGroup>/<consumerId>",
     methods=['GET'])
-def MR_reply():
+def MR_reply(consumerGroup, consumerId):
     global ctr_requests
     global ctr_responses
     global args
     global runningState
     global firstPollTime
+    global groupNameIndexes
+    global changeIds
+    global filePrefixes
 
-    if (firstPollTime == 0):
-        firstPollTime = time.time()
+    groupIndex = groupNameIndexes[consumerGroup]
+    print("Setting groupIndex: " + str(groupIndex))
 
-    ctr_requests = ctr_requests + 1
-    print("MR: poll request#: " + str(ctr_requests))
+    reqCtr = ctr_requests[groupIndex]
+    changeId = changeIds[groupIndex][reqCtr%len(changeIds[groupIndex])]
+    print("Setting changeid: " + changeId)
+    filePrefix = filePrefixes[changeId]
+    print("Setting file name prefix: " + filePrefix)
+
+    if (firstPollTime[groupIndex] == 0):
+        firstPollTime[groupIndex] = time.time()
+
+    ctr_requests[groupIndex] = ctr_requests[groupIndex] + 1
+    print("MR: poll request#: " + str(ctr_requests[groupIndex]))
 
     if (runningState == "Stopped"):
-        ctr_responses = ctr_responses + 1
+        ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
         return buildOkResponse("[]")
 
+
+
     if args.tc100:
-      return tc100("sftp")
+      return tc100(groupIndex, changeId, filePrefix, "sftp", "1MB")
     elif args.tc101:
-      return tc101("sftp")
+      return tc100(groupIndex, changeId, filePrefix, "sftp", "5MB")
     elif args.tc102:
-      return tc102("sftp")
+      return tc100(groupIndex, changeId, filePrefix, "sftp", "50MB")
 
     elif args.tc110:
-      return tc110("sftp")
+      return tc110(groupIndex, changeId, filePrefix, "sftp")
     elif args.tc111:
-      return tc111("sftp")
+      return tc111(groupIndex, changeId, filePrefix, "sftp")
     elif args.tc112:
-      return tc112("sftp")
+      return tc112(groupIndex, changeId, filePrefix, "sftp")
     elif args.tc113:
-      return tc113("sftp")
+      return tc113(groupIndex, changeId, filePrefix, "sftp")
 
     elif args.tc120:
-      return tc120("sftp")
+      return tc120(groupIndex, changeId, filePrefix, "sftp")
     elif args.tc121:
-      return tc121("sftp")
+      return tc121(groupIndex, changeId, filePrefix, "sftp")
     elif args.tc122:
-      return tc122("sftp")
+      return tc122(groupIndex, changeId, filePrefix, "sftp")
 
     elif args.tc1000:
-      return tc1000("sftp")
+      return tc1000(groupIndex, changeId, filePrefix, "sftp")
     elif args.tc1001:
-      return tc1001("sftp")
+      return tc1001(groupIndex, changeId, filePrefix, "sftp")
 
     elif args.tc1100:
-      return tc1100("sftp","1MB")
+      return tc1100(groupIndex, changeId, filePrefix, "sftp","1MB")
     elif args.tc1101:
-      return tc1100("sftp","50MB")
+      return tc1100(groupIndex, changeId, filePrefix, "sftp","50MB")
     elif args.tc1102:
-      return tc1100("sftp","50MB")
+      return tc1100(groupIndex, changeId, filePrefix, "sftp","50MB")
     elif args.tc1200:
-      return tc1200("sftp","1MB")
+      return tc1200(groupIndex, changeId, filePrefix, "sftp","1MB")
     elif args.tc1201:
-      return tc1200("sftp","5MB")
+      return tc1200(groupIndex, changeId, filePrefix, "sftp","5MB")
     elif args.tc1202:
-      return tc1200("sftp","50MB")
+      return tc1200(groupIndex, changeId, filePrefix, "sftp","50MB")
     elif args.tc1300:
-      return tc1300("sftp","1MB")
+      return tc1300(groupIndex, changeId, filePrefix, "sftp","1MB")
     elif args.tc1301:
-      return tc1300("sftp","5MB")
+      return tc1300(groupIndex, changeId, filePrefix, "sftp","5MB")
     elif args.tc1302:
-      return tc1300("sftp","50MB")
+      return tc1300(groupIndex, changeId, filePrefix, "sftp","50MB")
+
+    elif args.tc1500:
+      return tc1500(groupIndex, changeId, filePrefix, "sftp","1MB")
 
     elif args.tc500:
-      return tc500("sftp","1MB")
+      return tc500(groupIndex, changeId, filePrefix, "sftp","1MB")
     elif args.tc501:
-      return tc500("sftp","5MB")
+      return tc500(groupIndex, changeId, filePrefix, "sftp","5MB")
     elif args.tc502:
-      return tc500("sftp","50MB")
+      return tc500(groupIndex, changeId, filePrefix, "sftp","50MB")
     elif args.tc510:
-      return tc510("sftp")
+      return tc510(groupIndex, changeId, filePrefix, "sftp", "1MB")
     elif args.tc511:
-      return tc511("sftp")
+      return tc511(groupIndex, changeId, filePrefix, "sftp", "1KB")
+
+    elif args.tc550:
+      return tc510(groupIndex, changeId, filePrefix, "sftp", "50MB")
 
     elif args.tc710:
-      return tc710("sftp")
+      return tc710(groupIndex, changeId, filePrefix, "sftp")
 
 
     elif args.tc200:
-      return tc100("ftps")
+      return tc100(groupIndex, changeId, filePrefix, "ftps", "1MB")
     elif args.tc201:
-      return tc101("ftps")
+      return tc100(groupIndex, changeId, filePrefix, "ftps", "5MB")
     elif args.tc202:
-      return tc102("ftps")
+      return tc100(groupIndex, changeId, filePrefix, "ftps", "50MB")
 
     elif args.tc210:
-      return tc110("ftps")
+      return tc110(groupIndex, changeId, filePrefix, "ftps")
     elif args.tc211:
-      return tc111("ftps")
+      return tc111(groupIndex, changeId, filePrefix, "ftps")
     elif args.tc212:
-      return tc112("ftps")
+      return tc112(groupIndex, changeId, filePrefix, "ftps")
     elif args.tc213:
-      return tc113("ftps")
+      return tc113(groupIndex, changeId, filePrefix, "ftps")
 
     elif args.tc220:
-      return tc120("ftps")
+      return tc120(groupIndex, changeId, filePrefix, "ftps")
     elif args.tc221:
-      return tc121("ftps")
+      return tc121(groupIndex, changeId, filePrefix, "ftps")
     elif args.tc222:
-      return tc122("ftps")
+      return tc122(groupIndex, changeId, filePrefix, "ftps")
 
     elif args.tc2000:
-      return tc1000("ftps")
+      return tc1000(groupIndex, changeId, filePrefix, "ftps")
     elif args.tc2001:
-      return tc1001("ftps")
+      return tc1001(groupIndex, changeId, filePrefix, "ftps")
 
     elif args.tc2100:
-      return tc1100("ftps","1MB")
+      return tc1100(groupIndex, changeId, filePrefix, "ftps","1MB")
     elif args.tc2101:
-      return tc1100("ftps","50MB")
+      return tc1100(groupIndex, changeId, filePrefix, "ftps","50MB")
     elif args.tc2102:
-      return tc1100("ftps","50MB")
+      return tc1100(groupIndex, changeId, filePrefix, "ftps","50MB")
     elif args.tc2200:
-      return tc1200("ftps","1MB")
+      return tc1200(groupIndex, changeId, filePrefix, "ftps","1MB")
     elif args.tc2201:
-      return tc1200("ftps","5MB")
+      return tc1200(groupIndex, changeId, filePrefix, "ftps","5MB")
     elif args.tc2202:
-      return tc1200("ftps","50MB")
+      return tc1200(groupIndex, changeId, filePrefix, "ftps","50MB")
     elif args.tc2300:
-      return tc1300("ftps","1MB")
+      return tc1300(groupIndex, changeId, filePrefix, "ftps","1MB")
     elif args.tc2301:
-      return tc1300("ftps","5MB")
+      return tc1300(groupIndex, changeId, filePrefix, "ftps","5MB")
     elif args.tc2302:
-      return tc1300("ftps","50MB")
+      return tc1300(groupIndex, changeId, filePrefix, "ftps","50MB")
+
+    elif args.tc2500:
+      return tc1500(groupIndex, changeId, filePrefix, "ftps","1MB")
 
     elif args.tc600:
-      return tc500("ftps","1MB")
+      return tc500(groupIndex, changeId, filePrefix, "ftps","1MB")
     elif args.tc601:
-      return tc500("ftps","5MB")
+      return tc500(groupIndex, changeId, filePrefix, "ftps","5MB")
     elif args.tc602:
-      return tc500("ftps","50MB")
+      return tc500(groupIndex, changeId, filePrefix, "ftps","50MB")
     elif args.tc610:
-      return tc510("ftps")
+      return tc510(groupIndex, changeId, filePrefix, "ftps", "1MB")
     elif args.tc611:
-      return tc511("ftps")
-
+      return tc511(groupIndex, changeId, filePrefix, "ftps", "1KB")
+    elif args.tc650:
+      return tc510(groupIndex, changeId, filePrefix, "ftps", "50MB")
     elif args.tc810:
-      return tc710("ftps")
+      return tc710(groupIndex, changeId, filePrefix, "ftps")
 
 
 #### Test case functions
 
 
-def tc100(ftptype):
+def tc100(groupIndex, changeId, filePrefix, ftpType, fileSize):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
 
-  if (ctr_responses > 1):
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+
+  if (ctr_responses[groupIndex] > 1):
     return buildOkResponse("[]")
 
-  seqNr = (ctr_responses-1)
-  nodeName = createNodeName(0)
-  fileName = createFileName(nodeName, seqNr, "1MB")
-  msg = getEventHead(nodeName) + getEventName(fileName,ftptype,"onap","pano") + getEventEnd()
-  fileMap[seqNr] = seqNr
-  ctr_events = ctr_events+1
+  seqNr = (ctr_responses[groupIndex]-1)
+  nodeIndex=0
+  nodeName = createNodeName(nodeIndex)
+  fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, fileSize)
+  msg = getEventHead(groupIndex, changeId, nodeName) + getEventName(fileName,ftpType,"onap","pano",nodeIndex) + getEventEnd()
+  fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
+  ctr_events[groupIndex] = ctr_events[groupIndex]+1
   return buildOkResponse("["+msg+"]")
 
-def tc101(ftptype):
+#def tc101(groupIndex, ftpType):
+#  global ctr_responses
+#  global ctr_events
+#
+#  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+#
+#  if (ctr_responses[groupIndex] > 1):
+#    return buildOkResponse("[]")
+#
+#  seqNr = (ctr_responses[groupIndex]-1)
+#  nodeName = createNodeName(0)
+#  fileName = createFileName(groupIndex, nodeName, seqNr, "5MB")
+#  msg = getEventHead(groupIndex, nodeName) + getEventName(fileName,ftpType,"onap","pano") + getEventEnd()
+#  fileMap[groupIndex][seqNr] = seqNr
+#  ctr_events[groupIndex] = ctr_events[groupIndex]+1
+#  return buildOkResponse("["+msg+"]")
+#
+#def tc102(groupIndex, ftpType):
+#  global ctr_responses
+#  global ctr_events
+#
+#  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+#
+#  if (ctr_responses[groupIndex] > 1):
+#    return buildOkResponse("[]")
+#
+#  seqNr = (ctr_responses[groupIndex]-1)
+#  nodeName = createNodeName(0)
+#  fileName = createFileName(groupIndex, nodeName, seqNr, "50MB")
+#  msg = getEventHead(groupIndex, nodeName) + getEventName(fileName,ftpType,"onap","pano") + getEventEnd()
+#  fileMap[groupIndex][seqNr] = seqNr
+#  ctr_events[groupIndex] = ctr_events[groupIndex]+1
+#  return buildOkResponse("["+msg+"]")
+
+def tc110(groupIndex, changeId, filePrefix, ftpType):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
 
-  if (ctr_responses > 1):
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+
+  if (ctr_responses[groupIndex] > 100):
     return buildOkResponse("[]")
 
-  seqNr = (ctr_responses-1)
-  nodeName = createNodeName(0)
-  fileName = createFileName(nodeName, seqNr, "5MB")
-  msg = getEventHead(nodeName) + getEventName(fileName,ftptype,"onap","pano") + getEventEnd()
-  fileMap[seqNr] = seqNr
-  ctr_events = ctr_events+1
+  seqNr = (ctr_responses[groupIndex]-1)
+  nodeIndex=0
+  nodeName = createNodeName(nodeIndex)
+  fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, "1MB")
+  msg = getEventHead(groupIndex, changeId, nodeName) + getEventName(fileName,ftpType,"onap","pano",nodeIndex) + getEventEnd()
+  fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
+  ctr_events[groupIndex] = ctr_events[groupIndex]+1
   return buildOkResponse("["+msg+"]")
 
-def tc102(ftptype):
+def tc111(groupIndex, changeId, filePrefix, ftpType):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
 
-  if (ctr_responses > 1):
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+
+  if (ctr_responses[groupIndex] > 100):
     return buildOkResponse("[]")
 
-  seqNr = (ctr_responses-1)
-  nodeName = createNodeName(0)
-  fileName = createFileName(nodeName, seqNr, "50MB")
-  msg = getEventHead(nodeName) + getEventName(fileName,ftptype,"onap","pano") + getEventEnd()
-  fileMap[seqNr] = seqNr
-  ctr_events = ctr_events+1
-  return buildOkResponse("["+msg+"]")
-
-def tc110(ftptype):
-  global ctr_responses
-  global ctr_unique_files
-  global ctr_events
-
-  ctr_responses = ctr_responses + 1
-
-  if (ctr_responses > 100):
-    return buildOkResponse("[]")
-
-  seqNr = (ctr_responses-1)
-  nodeName = createNodeName(0)
-  fileName = createFileName(nodeName, seqNr, "1MB")
-  msg = getEventHead(nodeName) + getEventName(fileName,ftptype,"onap","pano") + getEventEnd()
-  fileMap[seqNr] = seqNr
-  ctr_events = ctr_events+1
-  return buildOkResponse("["+msg+"]")
-
-def tc111(ftptype):
-  global ctr_responses
-  global ctr_unique_files
-  global ctr_events
-
-  ctr_responses = ctr_responses + 1
-
-  if (ctr_responses > 100):
-    return buildOkResponse("[]")
-
-  nodeName = createNodeName(0)
-  msg = getEventHead(nodeName)
+  nodeIndex=0
+  nodeName = createNodeName(nodeIndex)
+  msg = getEventHead(groupIndex, changeId, nodeName)
 
   for i in range(100):
-    seqNr = i+(ctr_responses-1)
+    seqNr = i+(ctr_responses[groupIndex]-1)
     if i != 0: msg = msg + ","
-    fileName = createFileName(nodeName, seqNr, "1MB")
-    msg = msg + getEventName(fileName,ftptype,"onap","pano")
-    fileMap[seqNr] = seqNr
+    fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, "1MB")
+    msg = msg + getEventName(fileName,ftpType,"onap","pano",nodeIndex)
+    fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
 
   msg = msg + getEventEnd()
-  ctr_events = ctr_events+1
+  ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
-def tc112(ftptype):
+def tc112(groupIndex, changeId, filePrefix, ftpType):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
 
-  if (ctr_responses > 100):
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+
+  if (ctr_responses[groupIndex] > 100):
     return buildOkResponse("[]")
 
-  nodeName = createNodeName(0)
-  msg = getEventHead(nodeName)
+  nodeIndex=0
+  nodeName = createNodeName(nodeIndex)
+  msg = getEventHead(groupIndex, changeId, nodeName)
 
   for i in range(100):
-    seqNr = i+(ctr_responses-1)
+    seqNr = i+(ctr_responses[groupIndex]-1)
     if i != 0: msg = msg + ","
-    fileName = createFileName(nodeName, seqNr, "5MB")
-    msg = msg + getEventName(fileName,ftptype,"onap","pano")
-    fileMap[seqNr] = seqNr
+    fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, "5MB")
+    msg = msg + getEventName(fileName,ftpType,"onap","pano",nodeIndex)
+    fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
 
   msg = msg + getEventEnd()
-  ctr_events = ctr_events+1
+  ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
-def tc113(ftptype):
+def tc113(groupIndex, changeId, filePrefix, ftpType):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
 
-  if (ctr_responses > 1):
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+
+  if (ctr_responses[groupIndex] > 1):
     return buildOkResponse("[]")
 
-  nodeName = createNodeName(0)
+  nodeIndex=0
+  nodeName = createNodeName(nodeIndex)
   msg = ""
 
   for evts in range(100):  # build 100 evts
     if (evts > 0):
       msg = msg + ","
-    msg = msg + getEventHead(nodeName)
+    msg = msg + getEventHead(groupIndex, changeId, nodeName)
     for i in range(100):   # build 100 files
-      seqNr = i+evts+100*(ctr_responses-1)
+      seqNr = i+evts+100*(ctr_responses[groupIndex]-1)
       if i != 0: msg = msg + ","
-      fileName = createFileName(nodeName, seqNr, "1MB")
-      msg = msg + getEventName(fileName,ftptype,"onap","pano")
-      fileMap[seqNr] = seqNr
+      fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, "1MB")
+      msg = msg + getEventName(fileName,ftpType,"onap","pano",nodeIndex)
+      fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
 
     msg = msg + getEventEnd()
-    ctr_events = ctr_events+1
+    ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
 
-def tc120(ftptype):
+def tc120(groupIndex, changeId, filePrefix, ftpType):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
 
-  nodeName = createNodeName(0)
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
 
-  if (ctr_responses > 100):
+  nodeIndex=0
+  nodeName = createNodeName(nodeIndex)
+
+  if (ctr_responses[groupIndex] > 100):
     return buildOkResponse("[]")
 
-  if (ctr_responses % 10 == 2):
+  if (ctr_responses[groupIndex] % 10 == 2):
     return  # Return nothing
 
-  if (ctr_responses % 10 == 3):
+  if (ctr_responses[groupIndex] % 10 == 3):
     return buildOkResponse("") # Return empty message
 
-  if (ctr_responses % 10 == 4):
-    return buildOkResponse(getEventHead(nodeName)) # Return part of a json event
+  if (ctr_responses[groupIndex] % 10 == 4):
+    return buildOkResponse(getEventHead(groupIndex, changeId, nodeName)) # Return part of a json event
 
-  if (ctr_responses % 10 == 5):
+  if (ctr_responses[groupIndex] % 10 == 5):
     return buildEmptyResponse(404) # Return empty message with status code
 
-  if (ctr_responses % 10 == 6):
+  if (ctr_responses[groupIndex] % 10 == 6):
     sleep(60)
 
 
-  msg = getEventHead(nodeName)
+  msg = getEventHead(groupIndex, changeId, nodeName)
 
   for i in range(100):
-    seqNr = i+(ctr_responses-1)
+    seqNr = i+(ctr_responses[groupIndex]-1)
     if i != 0: msg = msg + ","
-    fileName = createFileName(nodeName, seqNr, "1MB")
-    msg = msg + getEventName(fileName,ftptype,"onap","pano")
-    fileMap[seqNr] = seqNr
+    fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, "1MB")
+    msg = msg + getEventName(fileName,ftpType,"onap","pano",nodeIndex)
+    fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
 
   msg = msg + getEventEnd()
-  ctr_events = ctr_events+1
+  ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
-def tc121(ftptype):
+def tc121(groupIndex, changeId, filePrefix, ftpType):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
 
-  if (ctr_responses > 100):
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+
+  if (ctr_responses[groupIndex] > 100):
     return buildOkResponse("[]")
 
-  nodeName = createNodeName(0)
-  msg = getEventHead(nodeName)
+  nodeIndex=0
+  nodeName = createNodeName(nodeIndex)
+  msg = getEventHead(groupIndex, changeId, nodeName)
 
   fileName = ""
   for i in range(100):
-    seqNr = i+(ctr_responses-1)
+    seqNr = i+(ctr_responses[groupIndex]-1)
     if (seqNr%10 == 0):     # Every 10th file is "missing"
-      fileName = createMissingFileName(nodeName, seqNr, "1MB")
+      fileName = createMissingFileName(groupIndex, filePrefix, nodeName, seqNr, "1MB")
     else:
-      fileName = createFileName(nodeName, seqNr, "1MB")
-      fileMap[seqNr] = seqNr
+      fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, "1MB")
+      fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
 
     if i != 0: msg = msg + ","
-    msg = msg + getEventName(fileName,ftptype,"onap","pano")
+    msg = msg + getEventName(fileName,ftpType,"onap","pano",nodeIndex)
 
   msg = msg + getEventEnd()
-  ctr_events = ctr_events+1
+  ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
-def tc122(ftptype):
+def tc122(groupIndex, changeId, filePrefix, ftpType):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
 
-  if (ctr_responses > 100):
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+
+  if (ctr_responses[groupIndex] > 100):
     return buildOkResponse("[]")
 
-  nodeName = createNodeName(0)
-  msg = getEventHead(nodeName)
+  nodeIndex=0
+  nodeName = createNodeName(nodeIndex)
+  msg = getEventHead(groupIndex, changeId, nodeName)
 
   for i in range(100):
-    fileName = createFileName(nodeName, 0, "1MB")  # All files identical names
+    fileName = createFileName(groupIndex, filePrefix, nodeName, 0, "1MB")  # All files identical names
     if i != 0: msg = msg + ","
-    msg = msg + getEventName(fileName,ftptype,"onap","pano")
+    msg = msg + getEventName(fileName,ftpType,"onap","pano", nodeIndex)
 
-  fileMap[0] = 0
+  fileMap[groupIndex][0] = 0
   msg = msg + getEventEnd()
-  ctr_events = ctr_events+1
+  ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
 
-def tc1000(ftptype):
+def tc1000(groupIndex, changeId, filePrefix, ftpType):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
 
-  nodeName = createNodeName(0)
-  msg = getEventHead(nodeName)
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+
+  nodeIndex=0
+  nodeName = createNodeName(nodeIndex)
+  msg = getEventHead(groupIndex, changeId, nodeName)
 
   for i in range(100):
-    seqNr = i+(ctr_responses-1)
+    seqNr = i+(ctr_responses[groupIndex]-1)
     if i != 0: msg = msg + ","
-    fileName = createFileName(nodeName, seqNr, "1MB")
-    msg = msg + getEventName(fileName,ftptype,"onap","pano")
-    fileMap[seqNr] = seqNr
+    fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, "1MB")
+    msg = msg + getEventName(fileName,ftpType,"onap","pano",nodeIndex)
+    fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
 
   msg = msg + getEventEnd()
-  ctr_events = ctr_events+1
+  ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
-def tc1001(ftptype):
+def tc1001(groupIndex, changeId, filePrefix, ftpType):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
 
-  nodeName = createNodeName(0)
-  msg = getEventHead(nodeName)
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+
+  nodeIndex=0
+  nodeName = createNodeName(nodeIndex)
+  msg = getEventHead(groupIndex, changeId, nodeName)
 
   for i in range(100):
-    seqNr = i+(ctr_responses-1)
+    seqNr = i+(ctr_responses[groupIndex]-1)
     if i != 0: msg = msg + ","
-    fileName = createFileName(nodeName, seqNr, "5MB")
-    msg = msg + getEventName(fileName,ftptype,"onap","pano")
-    fileMap[seqNr] = seqNr
+    fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, "5MB")
+    msg = msg + getEventName(fileName,ftpType,"onap","pano",nodeIndex)
+    fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
 
   msg = msg + getEventEnd()
-  ctr_events = ctr_events+1
+  ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
 
-def tc1100(ftptype, filesize):
+def tc1100(groupIndex, changeId, filePrefix, ftpType, filesize):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
+
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
 
   msg = ""
 
-  batch = (ctr_responses-1)%20;
+  batch = (ctr_responses[groupIndex]-1)%20;
 
   for pnfs in range(35):  # build events for 35 PNFs at a time. 20 batches -> 700
     if (pnfs > 0):
       msg = msg + ","
-    nodeName = createNodeName(pnfs + batch*35)
-    msg = msg + getEventHead(nodeName)
+    nodeIndex=pnfs + batch*35
+    nodeName = createNodeName(nodeIndex)
+    msg = msg + getEventHead(groupIndex, changeId, nodeName)
 
     for i in range(100):  # 100 files per event
-      seqNr = i + int((ctr_responses-1)/20);
+      seqNr = i + int((ctr_responses[groupIndex]-1)/20);
       if i != 0: msg = msg + ","
-      fileName = createFileName(nodeName, seqNr, filesize)
-      msg = msg + getEventName(fileName,ftptype,"onap","pano")
+      fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, filesize)
+      msg = msg + getEventName(fileName,ftpType,"onap","pano",nodeIndex)
       seqNr = seqNr + (pnfs+batch*35)*1000000 #Create unique id for this node and file
-      fileMap[seqNr] = seqNr
+      fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
 
     msg = msg + getEventEnd()
-    ctr_events = ctr_events+1
+    ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
-def tc1200(ftptype, filesize):
+def tc1200(groupIndex, changeId, filePrefix, ftpType, filesize):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
+
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
 
   msg = ""
 
-  batch = (ctr_responses-1)%20;
+  batch = (ctr_responses[groupIndex]-1)%20;
 
   for pnfs in range(35):  # build events for 35 PNFs at a time. 20 batches -> 700
     if (pnfs > 0):
       msg = msg + ","
-    nodeName = createNodeName(pnfs + batch*35)
-    msg = msg + getEventHead(nodeName)
+    nodeIndex=pnfs + batch*35
+    nodeName = createNodeName(nodeIndex)
+    msg = msg + getEventHead(groupIndex, changeId, nodeName)
 
     for i in range(100):  # 100 files per event, all new files
-      seqNr = i+100 * int((ctr_responses-1)/20);
+      seqNr = i+100 * int((ctr_responses[groupIndex]-1)/20);
       if i != 0: msg = msg + ","
-      fileName = createFileName(nodeName, seqNr, filesize)
-      msg = msg + getEventName(fileName,ftptype,"onap","pano")
+      fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, filesize)
+      msg = msg + getEventName(fileName,ftpType,"onap","pano",nodeIndex)
       seqNr = seqNr + (pnfs+batch*35)*1000000 #Create unique id for this node and file
-      fileMap[seqNr] = seqNr
+      fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
 
     msg = msg + getEventEnd()
-    ctr_events = ctr_events+1
+    ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
 
-def tc1300(ftptype, filesize):
+def tc1300(groupIndex, changeId, filePrefix, ftpType, filesize):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
   global rop_counter
   global rop_timestamp
 
-  ctr_responses = ctr_responses + 1
+  if (rop_counter == 0):
+      rop_timestamp = time.time()
+
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
 
   #Start a  event deliver for all 700 nodes every 15min
   rop = time.time()-rop_timestamp
   if ((rop < 900) & (rop_counter%20 == 0) & (rop_counter != 0)):
       return buildOkResponse("[]")
   else:
+    if (rop_counter%20 == 0) & (rop_counter > 0):
+        rop_timestamp = rop_timestamp+900
+
+    rop_counter = rop_counter+1
+
+  msg = ""
+
+  batch = (rop_counter-1)%20;
+
+  for pnfs in range(35):  # build events for 35 PNFs at a time. 20 batches -> 700
+    if (pnfs > 0):
+      msg = msg + ","
+    nodeIndex=pnfs + batch*35
+    nodeName = createNodeName(nodeIndex)
+    msg = msg + getEventHead(groupIndex, changeId, nodeName)
+
+    for i in range(100):  # 100 files per event
+      seqNr = i + int((rop_counter-1)/20);
+      if i != 0: msg = msg + ","
+      fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, filesize)
+      msg = msg + getEventName(fileName,ftpType,"onap","pano",nodeIndex)
+      seqNr = seqNr + (pnfs+batch*35)*1000000 #Create unique id for this node and file
+      fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
+
+    msg = msg + getEventEnd()
+    ctr_events[groupIndex] = ctr_events[groupIndex]+1
+
+  return buildOkResponse("["+msg+"]")
+
+def tc1500(groupIndex, changeId, filePrefix, ftpType, filesize):
+  global ctr_responses
+  global ctr_events
+  global rop_counter
+  global rop_timestamp
+
+  if (rop_counter == 0):
+      rop_timestamp = time.time()
+
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+
+  if (ctr_responses[groupIndex] <= 2000 ):   #first 25h of event doess not care of 15min rop timer
+
+    msg = ""
+
+    batch = (ctr_responses[groupIndex]-1)%20;
+
+    for pnfs in range(35):  # build events for 35 PNFs at a time. 20 batches -> 700
+        if (pnfs > 0):
+            msg = msg + ","
+
+        nodeIndex=pnfs + batch*35
+        nodeName = createNodeName(nodeIndex)
+        msg = msg + getEventHead(groupIndex, changeId, nodeName)
+
+        for i in range(100):  # 100 files per event
+            seqNr = i + int((ctr_responses[groupIndex]-1)/20);
+            if i != 0: msg = msg + ","
+            if (seqNr < 100):
+                fileName = createMissingFileName(groupIndex, filePrefix, nodeName, seqNr, "1MB")
+            else:
+                fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, "1MB")
+                seqNr = seqNr + (pnfs+batch*35)*1000000 #Create unique id for this node and file
+                fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
+            msg = msg + getEventName(fileName,ftpType,"onap","pano",nodeIndex)
+
+
+        msg = msg + getEventEnd()
+        ctr_events[groupIndex] = ctr_events[groupIndex]+1
+
+        rop_counter = rop_counter+1
+    return buildOkResponse("["+msg+"]")
+
+  #Start an event delivery for all 700 nodes every 15min
+  rop = time.time()-rop_timestamp
+  if ((rop < 900) & (rop_counter%20 == 0) & (rop_counter != 0)):
+      return buildOkResponse("[]")
+  else:
     if (rop_counter%20 == 0):
         rop_timestamp = time.time()
 
@@ -645,30 +960,31 @@
   for pnfs in range(35):  # build events for 35 PNFs at a time. 20 batches -> 700
     if (pnfs > 0):
       msg = msg + ","
-    nodeName = createNodeName(pnfs + batch*35)
-    msg = msg + getEventHead(nodeName)
+    nodeIndex=pnfs + batch*35
+    nodeName = createNodeName(nodeIndex)
+    msg = msg + getEventHead(groupIndex, changeId, nodeName)
 
     for i in range(100):  # 100 files per event
       seqNr = i + int((rop_counter-1)/20);
       if i != 0: msg = msg + ","
-      fileName = createFileName(nodeName, seqNr, filesize)
-      msg = msg + getEventName(fileName,ftptype,"onap","pano")
+      fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, filesize)
+      msg = msg + getEventName(fileName,ftpType,"onap","pano", nodeIndex)
       seqNr = seqNr + (pnfs+batch*35)*1000000 #Create unique id for this node and file
-      fileMap[seqNr] = seqNr
+      fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
 
     msg = msg + getEventEnd()
-    ctr_events = ctr_events+1
+    ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
-def tc500(ftptype, filesize):
+def tc500(groupIndex, changeId, filePrefix, ftpType, filesize):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
 
-  if (ctr_responses > 1):
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+
+  if (ctr_responses[groupIndex] > 1):
     return buildOkResponse("[]")
 
   msg = ""
@@ -678,29 +994,29 @@
     if (pnfs > 0):
       msg = msg + ","
     nodeName = createNodeName(pnfs)
-    msg = msg + getEventHead(nodeName)
+    msg = msg + getEventHead(groupIndex, changeId, nodeName)
 
     for i in range(2):
       seqNr = i;
       if i != 0: msg = msg + ","
-      fileName = createFileName(nodeName, seqNr, filesize)
-      msg = msg + getEventName(fileName,ftptype,"onap","pano")
+      fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, filesize)
+      msg = msg + getEventName(fileName,ftpType,"onap","pano",pnfs)
       seqNr = seqNr + pnfs*1000000 #Create unique id for this node and file
-      fileMap[seqNr] = seqNr
+      fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
 
     msg = msg + getEventEnd()
-    ctr_events = ctr_events+1
+    ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
-def tc510(ftptype):
+def tc510(groupIndex, changeId, filePrefix, ftpType, fileSize):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
 
-  if (ctr_responses > 5):
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+
+  if (ctr_responses[groupIndex] > 5):
     return buildOkResponse("[]")
 
   msg = ""
@@ -709,25 +1025,25 @@
     if (pnfs > 0):
       msg = msg + ","
     nodeName = createNodeName(pnfs)
-    msg = msg + getEventHead(nodeName)
-    seqNr = (ctr_responses-1)
-    fileName = createFileName(nodeName, seqNr, "1MB")
-    msg = msg + getEventName(fileName,ftptype,"onap","pano")
+    msg = msg + getEventHead(groupIndex, changeId, nodeName)
+    seqNr = (ctr_responses[groupIndex]-1)
+    fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, fileSize)
+    msg = msg + getEventName(fileName,ftpType,"onap","pano",pnfs)
     seqNr = seqNr + pnfs*1000000 #Create unique id for this node and file
-    fileMap[seqNr] = seqNr
+    fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
     msg = msg + getEventEnd()
-    ctr_events = ctr_events+1
+    ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
-def tc511(ftptype):
+def tc511(groupIndex, changeId, filePrefix, ftpType, fileSize):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
 
-  if (ctr_responses > 5):
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+
+  if (ctr_responses[groupIndex] > 5):
     return buildOkResponse("[]")
 
   msg = ""
@@ -736,47 +1052,48 @@
     if (pnfs > 0):
       msg = msg + ","
     nodeName = createNodeName(pnfs)
-    msg = msg + getEventHead(nodeName)
-    seqNr = (ctr_responses-1)
-    fileName = createFileName(nodeName, seqNr, "1KB")
-    msg = msg + getEventName(fileName,ftptype,"onap","pano")
+    msg = msg + getEventHead(groupIndex, changeId, nodeName)
+    seqNr = (ctr_responses[groupIndex]-1)
+    fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, fileSize)
+    msg = msg + getEventName(fileName,ftpType,"onap","pano",pnfs)
     seqNr = seqNr + pnfs*1000000 #Create unique id for this node and file
-    fileMap[seqNr] = seqNr
+    fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
     msg = msg + getEventEnd()
-    ctr_events = ctr_events+1
+    ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
-def tc710(ftptype):
+def tc710(groupIndex, changeId, filePrefix, ftpType):
   global ctr_responses
-  global ctr_unique_files
   global ctr_events
 
-  ctr_responses = ctr_responses + 1
 
-  if (ctr_responses > 100):
+  ctr_responses[groupIndex] = ctr_responses[groupIndex] + 1
+
+  if (ctr_responses[groupIndex] > 100):
     return buildOkResponse("[]")
 
   msg = ""
 
-  batch = (ctr_responses-1)%20;
+  batch = (ctr_responses[groupIndex]-1)%20;
 
   for pnfs in range(35):  # build events for 35 PNFs at a time. 20 batches -> 700
     if (pnfs > 0):
       msg = msg + ","
-    nodeName = createNodeName(pnfs + batch*35)
-    msg = msg + getEventHead(nodeName)
+    nodeIndex=pnfs + batch*35
+    nodeName = createNodeName(nodeIndex)
+    msg = msg + getEventHead(groupIndex, changeId, nodeName)
 
     for i in range(100):  # 100 files per event
-      seqNr = i + int((ctr_responses-1)/20);
+      seqNr = i + int((ctr_responses[groupIndex]-1)/20);
       if i != 0: msg = msg + ","
-      fileName = createFileName(nodeName, seqNr, "1MB")
-      msg = msg + getEventName(fileName,ftptype,"onap","pano")
+      fileName = createFileName(groupIndex, filePrefix, nodeName, seqNr, "1MB")
+      msg = msg + getEventName(fileName,ftpType,"onap","pano",nodeIndex)
       seqNr = seqNr + (pnfs+batch*35)*1000000 #Create unique id for this node and file
-      fileMap[seqNr] = seqNr
+      fileMap[groupIndex][seqNr*hash(filePrefix)] = seqNr
 
     msg = msg + getEventEnd()
-    ctr_events = ctr_events+1
+    ctr_events[groupIndex] = ctr_events[groupIndex]+1
 
   return buildOkResponse("["+msg+"]")
 
@@ -786,22 +1103,22 @@
 def createNodeName(index):
     return "PNF"+str(index);
 
-def createFileName(nodeName, index, size):
+def createFileName(groupIndex, filePrefix, nodeName, index, size):
     global ctr_files
-    ctr_files = ctr_files + 1
-    return "A20000626.2315+0200-2330+0200_" + nodeName + "-" + str(index) + "-" +size + ".tar.gz";
+    ctr_files[groupIndex] = ctr_files[groupIndex] + 1
+    return filePrefix+"20000626.2315+0200-2330+0200_" + nodeName + "-" + str(index) + "-" +size + ".tar.gz";
 
-def createMissingFileName(nodeName, index, size):
+def createMissingFileName(groupIndex, filePrefix, nodeName, index, size):
     global ctr_files
-    ctr_files = ctr_files + 1
-    return "AMissingFile_" + nodeName + "-" + str(index) + "-" +size + ".tar.gz";
+    ctr_files[groupIndex] = ctr_files[groupIndex] + 1
+    return filePrefix+"MissingFile_" + nodeName + "-" + str(index) + "-" +size + ".tar.gz";
 
 
 # Function to build fixed beginning of an event
 
-def getEventHead(nodename):
+def getEventHead(groupIndex, changeId, nodename):
   global pnfMap
-  pnfMap.add(nodename) 
+  pnfMap[groupIndex].add(nodename)
   headStr = """
         {
           "event": {
@@ -825,18 +1142,19 @@
             "notificationFields": {
               "notificationFieldsVersion": "2.0",
               "changeType": "FileReady",
-              "changeIdentifier": "PM_MEAS_FILES",
+              "changeIdentifier": \"""" + changeId + """",
               "arrayOfNamedHashMap": [
           """ 
   return headStr
 
 # Function to build the variable part of an event
-def getEventName(fn,type,user,passwd):
-    port = SFTP_PORT
-    ip = sftp_ip
+def getEventName(fn,type,user,passwd, nodeIndex):
+    nodeIndex=nodeIndex%num_ftp_servers
+    port = sftp_ports[nodeIndex]
+    ip = sftp_hosts[nodeIndex]
     if (type == "ftps"):
-        port = FTPS_PORT
-        ip = ftps_ip
+        port = ftps_ports[nodeIndex]
+        ip = ftps_hosts[nodeIndex]
 
     nameStr =        """{
                   "name": \"""" + fn + """",
@@ -879,26 +1197,102 @@
 if __name__ == "__main__":
 
     # IP addresses to use for ftp servers, using localhost if not env var is set
-    sftp_ip = os.environ.get('SFTP_SIM_IP', 'localhost')
-    ftps_ip = os.environ.get('FTPS_SIM_IP', 'localhost')
+    sftp_sims = os.environ.get('SFTP_SIMS', 'localhost:1022')
+    ftps_sims = os.environ.get('FTPS_SIMS', 'localhost:21')
+    num_ftp_servers = int(os.environ.get('NUM_FTP_SERVERS', 1))
+
+    print("Configured sftp sims: " + sftp_sims)
+    print("Configured ftps sims: " + ftps_sims)
+    print("Configured number of ftp servers: " + str(num_ftp_servers))
+
+    tmp=sftp_sims.split(',')
+    for i in range(len(tmp)):
+        hp=tmp[i].split(':')
+        sftp_hosts.append(hp[0])
+        sftp_ports.append(hp[1])
+
+    tmp=ftps_sims.split(',')
+    for i in range(len(tmp)):
+        hp=tmp[i].split(':')
+        ftps_hosts.append(hp[0])
+        ftps_ports.append(hp[1])
+
+    groups = os.environ.get('MR_GROUPS', 'OpenDcae-c12:PM_MEAS_FILES')
+    configuredPrefixes = os.environ.get('MR_FILE_PREFIX_MAPPING', 'PM_MEAS_FILES:A')
+
+    if (len(groups) == 0 ):
+        groups='OpenDcae-c12:PM_MEAS_FILES'
+        print("Using default group: " + groups)
+    else:
+        print("Configured groups: " + groups)
+
+    if (len(configuredPrefixes) == 0 ):
+        configuredPrefixes='PM_MEAS_FILES:A'
+        print("Using default changeid to file prefix mapping: " + configuredPrefixes)
+    else:
+        print("Configured changeid to file prefix mapping: " + configuredPrefixes)
 
     #Counters
-    ctr_responses = 0
-    ctr_requests = 0
-    ctr_files=0
-    ctr_unique_files = 0
-    ctr_events = 0
+    ctr_responses = []
+    ctr_requests = []
+    ctr_files=[]
+    ctr_events = []
     startTime = time.time()
-    firstPollTime = 0
+    firstPollTime = []
     runningState = "Started"
+     #Keeps all responded file names
+    fileMap = []
+    #Keeps all responded PNF names
+    pnfMap = []
+    #Handles rop periods for tests that deliveres events every 15 min
     rop_counter = 0
     rop_timestamp = time.time()
 
-    #Keeps all responded file names
-    fileMap = {}
+    #List of configured group names
+    groupNames = []
+    #Mapping between group name and index in groupNames
+    groupNameIndexes = {}
+    #String of configured groups
+    configuredGroups = ""
+    #String of configured change identifiers
+    configuredChangeIds = ""
+    #List of changed identifiers
+    changeIds = []
+    #List of filePrefixes
+    filePrefixes = {}
 
-    #Keeps all responded PNF names
-    pnfMap = set()
+    tmp=groups.split(',')
+    for i in range(len(tmp)):
+        g=tmp[i].split(':')
+        for j in range(len(g)):
+            g[j] = g[j].strip()
+            if (j == 0):
+                if (len(configuredGroups) > 0):
+                    configuredGroups=configuredGroups+","
+                configuredGroups=configuredGroups+g[0]
+                groupNames.append(g[0])
+                groupNameIndexes[g[0]] = i
+                changeIds.append({})
+                ctr_responses.append(0)
+                ctr_requests.append(0)
+                ctr_files.append(0)
+                ctr_events.append(0)
+                firstPollTime.append(0)
+                pnfMap.append(set())
+                fileMap.append({})
+                if (len(configuredChangeIds) > 0):
+                    configuredChangeIds=configuredChangeIds+","
+            else:
+                changeIds[i][j-1]=g[j]
+                if (j > 1):
+                    configuredChangeIds=configuredChangeIds+":"
+                configuredChangeIds=configuredChangeIds+g[j]
+
+    # Create a map between changeid and file name prefix
+    tmp=configuredPrefixes.split(',')
+    for i in range(len(tmp)):
+        p=tmp[i].split(':')
+        filePrefixes[p[0]] = p[1]
 
     tc_num = "Not set"
     tc_help = "Not set"
@@ -985,6 +1379,11 @@
         help='TC511 - 700 MEs, SFTP, 1KB files, 1 file per event, 3500 events, 700 event per poll.')
 
     parser.add_argument(
+        '--tc550',
+        action='store_true',
+        help='TC550 - 700 MEs, SFTP, 50MB files, 1 file per event, 3500 events, 700 event per poll.')
+
+    parser.add_argument(
         '--tc710',
         action='store_true',
         help='TC710 - 700 MEs, SFTP, 1MB files, 100 files per event, 3500 events, 35 event per poll.')
@@ -1028,6 +1427,10 @@
         action='store_true',
         help='TC1302 - 700 ME, SFTP, 50MB files, 100 files per event, endless number of events, 35 event per poll, 20 event polls every 15min')
 
+    parser.add_argument(
+        '--tc1500',
+        action='store_true',
+        help='TC1500 - 700 ME, SFTP, 1MB files, 100 files per event, 35 events per poll, simulating 25h backlog of decreasing number of outdated files and then 20 event polls every 15min for 1h')
 
 # FTPS TCs with single ME
     parser.add_argument(
@@ -1123,6 +1526,11 @@
         help='TC2302 - 700 ME, FTPS, 50MB files, 100 files per event, endless number of events, 35 event per poll, 20 event polls every 15min')
 
     parser.add_argument(
+        '--tc2500',
+        action='store_true',
+        help='TC2500 - 700 ME, FTPS, 1MB files, 100 files per event, 35 events per poll, simulating 25h backlog of decreasing number of outdated files and then 20 event polls every 15min for 1h')
+
+    parser.add_argument(
         '--tc600',
         action='store_true',
         help='TC600 - 700 MEs, FTPS, 1MB files, 2 new files per event, 700 events, all event in one poll.')
@@ -1148,6 +1556,11 @@
         help='TC611 - 700 MEs, FTPS, 1KB files, 1 file per event, 3500 events, 700 event per poll.')
 
     parser.add_argument(
+        '--tc650',
+        action='store_true',
+        help='TC610 - 700 MEs, FTPS, 50MB files, 1 file per event, 3500 events, 700 event per poll.')
+
+    parser.add_argument(
         '--tc810',
         action='store_true',
         help='TC810 - 700 MEs, FTPS, 1MB files, 100 files per event, 3500 events, 35 event per poll.')
@@ -1203,6 +1616,9 @@
     elif args.tc1302:
         tc_num = "TC# 1302"
 
+    elif args.tc1500:
+        tc_num = "TC# 1500"
+
     elif args.tc500:
         tc_num = "TC# 500"
     elif args.tc501:
@@ -1214,6 +1630,9 @@
     elif args.tc511:
         tc_num = "TC# 511"
 
+    elif args.tc550:
+        tc_num = "TC# 550"
+
     elif args.tc710:
         tc_num = "TC# 710"
 
@@ -1264,6 +1683,9 @@
     elif args.tc2302:
         tc_num = "TC# 2302"
 
+    elif args.tc2500:
+        tc_num = "TC# 2500"
+
     elif args.tc600:
         tc_num = "TC# 600"
     elif args.tc601:
@@ -1274,7 +1696,8 @@
         tc_num = "TC# 610"
     elif args.tc611:
         tc_num = "TC# 611"
-
+    elif args.tc650:
+        tc_num = "TC# 650"
     elif args.tc810:
         tc_num = "TC# 810"
 
@@ -1285,8 +1708,13 @@
 
     print("TC num: " + tc_num)
 
-    print("Using " + sftp_ip + " for sftp server address in file urls.")
-    print("Using " + ftps_ip + " for ftps server address in file urls.")
+    for i in range(len(sftp_hosts)):
+        print("Using " + str(sftp_hosts[i]) + ":" + str(sftp_ports[i]) + " for sftp server with index " + str(i) + " for sftp server address and port in file urls.")
+
+    for i in range(len(ftps_hosts)):
+        print("Using " + str(ftps_hosts[i]) + ":" + str(ftps_ports[i]) + " for ftps server with index " + str(i) + " for ftps server address and port in file urls.")
+
+    print("Using up to " + str(num_ftp_servers) + " ftp servers, for each protocol for PNFs.")
 
     app.run(port=HOST_PORT, host=HOST_IP)
 
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/.gitignore b/test/mocks/datafilecollector-testharness/simulator-group/.gitignore
index 48e8e80..fada972 100644
--- a/test/mocks/datafilecollector-testharness/simulator-group/.gitignore
+++ b/test/mocks/datafilecollector-testharness/simulator-group/.gitignore
@@ -1,6 +1,5 @@
-configuration
-tls
 docker-compose.yml
 node_modules
 package.json
-prepare-images.sh
\ No newline at end of file
+package-lock.json
+.tmp*
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/Dockerfile-sim-monitor b/test/mocks/datafilecollector-testharness/simulator-group/Dockerfile-sim-monitor
deleted file mode 100644
index 145d2d9..0000000
--- a/test/mocks/datafilecollector-testharness/simulator-group/Dockerfile-sim-monitor
+++ /dev/null
@@ -1,15 +0,0 @@
-#Image for monitor simulator
-
-FROM node:8
-
-WORKDIR /app
-
-COPY sim-monitor.js ./
-COPY package*.json ./
-
-RUN npm install express
-RUN npm install argparse
-
-EXPOSE 9999
-
-CMD node /app/sim-monitor.js
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/README.md b/test/mocks/datafilecollector-testharness/simulator-group/README.md
index dc8f286..5a51d8a 100644
--- a/test/mocks/datafilecollector-testharness/simulator-group/README.md
+++ b/test/mocks/datafilecollector-testharness/simulator-group/README.md
@@ -1,9 +1,69 @@
-#Introduction
+###Introduction
 The purpose of the "simulator-group" is to run all containers in one go with specified behavior.
-Mainly this is needed for CSIT tests but can be used also for local testing.
+Mainly this is needed for CSIT tests and for auto test but can be used also for manual testing of dfc both as an java-app
+or as a manually started container. Instead of running the simulators manually as described below the auto-test cases
+can be executed together with a java-app or a manaully started container.
+
+In general these steps are needed to run the simulator group and dfc
+
+1. Build the simulator images
+2. Edit simulator env variables (to adapt the behavior of simulators)
+3. Configure consul
+4. Start the simulator monitor (to view the simulator stats)
+5. Start the simulators
+6. Start dfc
+
+###Overview of the simulators.
+There are 5 different types of simulators. For futher details, see the README.md in each simulator dir.
+
+1. The MR simulator emits fileready events, upon poll requests, with new and historice file references.
+It is possible to configire the change identifier and file prefixes for these identifiers and for which consumer groups
+these change identifier shall be generated. It is also possible to configure the number of events and files to generate and
+from which ftp servers the files shall be fetched from.
+2. The DR simulator handles the publish queries (to check if a file has previously been published) and the
+actual publish request (which results in a redirect to the DR REDIR simulator. It keeps a 'db' of published files updated by the DR REDIR simulator.
+It is possible to configure 1 or more feeds along with the accepted filename prefixes for each feed. It is also possible
+to configure the responses for the publish queries and publish requests.
+3. The DR REDIR simulator handles the redirect request for publish from the DR simulator. All accepted files will be stored as and empty
+file with a file name concatenated from the published file name + file size + feed id.
+It is possible to configure 1 or more feeds along with the accepted filename prefixes for each feed. It is also possible
+to configure the responses for the publish requests.
+4. The SFTP simulator(s) handles the ftp download requests. 5 of these simulators are always started and in the MR sim it is
+possible to configure the distrubution of files over these 5 servers (from 1 up to 5 severs). At start of the server, the server is
+populated with files to download.
+5. The FTPS simulator(s) is the same as the SFTP except that it using the FTPS protocol.
 
 
-###Preparation 
+### Build the simulator images
+Run the script `prepare-images.sh` to build the docker images for MR, DR and FTPS servers.
+
+###Edit simulator env variables
+
+
+
+
+###Summary of scripts and files
+`consul_config.sh` - Convert a json config file to work with dfc when manually started as java-app or container and then add that json to Consul.
+
+`docker-compose-setup.sh` - Sets environment variables for the simulators and start the simulators with that settings.
+
+`docker-compose-template.yml` - A docker compose template with environment variables setting. Used for producing a docker-compose file to defined the simulator containers.
+
+`prepare-images.sh` - Script to build all needed simulator images.
+
+`setup-ftp-files-for-image.sh` - Script executed in the ftp server to create files for download.
+
+`sim-monitor-start.sh` - Script to install needed packages and start the simulator monitor.
+
+`sim-monitor.js` - The source file the simulator monitor.
+
+`simulators-kill.sh` - Script to kill all the simulators
+
+`simulators-start.sh` - Script to start all the simulators. All env variables need to be set prior to executing the script.
+
+
+
+###Preparation
 Do the manual steps to prepare the simulator images
 
 Build the mr-sim image.
@@ -33,8 +93,8 @@
 Edit the `docker-compose-setup.sh` (or create a copy) to setup the env variables to the desired test behavior for each simulators.
 See each simulator to find a description of the available settings (DR_TC, DR_REDIR_TC and MR_TC).
 The following env variables shall be set (example values).
-Note that NUM_FTPFILES and NUM_PNFS controls the number of ftp files created in the ftp servers. 
-A total of NUM_FTPFILES * NUM_PNFS ftp files will be created in each ftp server (4 files in the below example). 
+Note that NUM_FTPFILES and NUM_PNFS controls the number of ftp files created in the ftp servers.
+A total of NUM_FTPFILES * NUM_PNFS ftp files will be created in each ftp server (4 files in the below example).
 Large settings will be time consuming at start of the servers.
 Note that the number of files must match the number of file references emitted from the MR sim.
 
@@ -42,7 +102,7 @@
 
 DR_REDIR_TC="--tc normal"     #Normal behavior of the DR redirect sim
 
-MR_TC="--tc100"               #One 1 MB file in one event, once. 
+MR_TC="--tc100"               #One 1 MB file in one event, once.
 
 BC_TC=""                      #Not in use yet
 
@@ -52,7 +112,7 @@
 
 To minimize the number of ftp file creation, the following two variables can be configured in the same file.
 FILE_SIZE="1MB"               #File size for FTP file (1KB, 1MB, 5MB, 50MB or ALL)
-FTP_TYPE="SFTP"               #Type of FTP files to generate (SFTP, FTPS or ALL) 
+FTP_TYPE="SFTP"               #Type of FTP files to generate (SFTP, FTPS or ALL)
 
 If `FTP_TYPE` is set to `ALL`, both ftp servers will be populated with the same files. If set to `SFTP` or `FTPS` then only the server serving that protocol will be populated with files.
 
@@ -73,19 +133,11 @@
 Start DFC by the following cmd: `docker run -d --network="host" --name dfc_app <dfc-image> `
 
 `<dfc-image>` could be either the locally built image `onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server`
-or the one in nexus `nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server`. 
+or the one in nexus `nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server`.
 
 
 
-###Simulator monitor
-Start the simulator monitor server with `sim-monitor-start.sh` and the open a browser with the url `localhost:9999/mon`
-to see the statisics page with data from MR sim, DR sim and DR redir sim.
-Or run as a container, build image first. Note, does not work on Mac.
-
-`cp ../dr-sim/package.json .`
-
-`docker build  -t sim-mon:latest -f Dockerfile-sim-monitor  .`
-
-Then run it, `docker run --network="host" --name sim-mon -it -d sim-mon:latest`
-
-Stop it with `docker stop sim-mon` and if desired, remove the container by `docker rm sim-mon`
+###Start the simulator monitor
+Start the simulator monitor server with `node sim-monitor.js` on the cmd line and the open a browser with the url `localhost:9999/mon`
+to see the statisics page with data from DFC(ss), MR sim, DR sim and DR redir sim.
+If needed run 'npm install express' first
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed1_PM.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed1_PM.json
new file mode 100644
index 0000000..282085c
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed1_PM.json
@@ -0,0 +1,23 @@
+{
+   "dmaap.ftpesConfig.keyCert":"config/dfc.jks",
+   "dmaap.ftpesConfig.keyPassword":"secret",
+   "dmaap.ftpesConfig.trustedCa":"config/ftp.jks",
+   "dmaap.ftpesConfig.trustedCaPassword":"secret",
+   "dmaap.security.trustStorePath":"change it",
+   "dmaap.security.trustStorePasswordPath":"trustStorePasswordPath",
+   "dmaap.security.keyStorePath":"keyStorePath",
+   "dmaap.security.keyStorePasswordPath":"change it",
+   "dmaap.security.enableDmaapCertAuth":"false",
+   "dmaap.dmaapProducerConfiguration" : {
+         "changeIdentifier":"PM_MEAS_FILES",
+         "feedName":"feed01"
+    },
+    "streams_subscribes":{
+      "dmaap_subscriber":{
+         "dmmap_info":{
+            "topic_url":"http://dradmin:dradmin@mrsim:2222/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12"
+         },
+         "type":"message_router"
+      }
+   }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed1_PM_feed2_CTR.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed1_PM_feed2_CTR.json
new file mode 100644
index 0000000..2e4f62c
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed1_PM_feed2_CTR.json
@@ -0,0 +1,29 @@
+{
+  "dmaap.ftpesConfig.keyCert": "config/dfc.jks",
+  "dmaap.ftpesConfig.keyPassword": "secret",
+  "dmaap.ftpesConfig.trustedCa": "config/ftp.jks",
+  "dmaap.ftpesConfig.trustedCaPassword": "secret",
+  "dmaap.security.trustStorePath": "change it",
+  "dmaap.security.trustStorePasswordPath": "trustStorePasswordPath",
+  "dmaap.security.keyStorePath": "keyStorePath",
+  "dmaap.security.keyStorePasswordPath": "change it",
+  "dmaap.security.enableDmaapCertAuth": "false",
+  "dmaap.dmaapProducerConfiguration": [
+    {
+      "changeIdentifier": "PM_MEAS_FILES",
+      "feedName": "feed01"
+    },
+    {
+      "changeIdentifier": "CTR_FILES",
+      "feedName": "feed02"
+    }
+  ],
+  "streams_subscribes": {
+    "dmaap_subscriber": {
+      "dmmap_info": {
+        "topic_url": "http://dradmin:dradmin@mrsim:2222/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12"
+      },
+      "type": "message_router"
+    }
+  }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed2_CTR.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed2_CTR.json
new file mode 100644
index 0000000..7eeed24
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed2_CTR.json
@@ -0,0 +1,23 @@
+{
+   "dmaap.ftpesConfig.keyCert":"config/dfc.jks",
+   "dmaap.ftpesConfig.keyPassword":"secret",
+   "dmaap.ftpesConfig.trustedCa":"config/ftp.jks",
+   "dmaap.ftpesConfig.trustedCaPassword":"secret",
+   "dmaap.security.trustStorePath":"change it",
+   "dmaap.security.trustStorePasswordPath":"trustStorePasswordPath",
+   "dmaap.security.keyStorePath":"keyStorePath",
+   "dmaap.security.keyStorePasswordPath":"change it",
+   "dmaap.security.enableDmaapCertAuth":"false",
+   "dmaap.dmaapProducerConfiguration" : {
+         "changeIdentifier":"CTR_MEAS_FILES",
+         "feedName":"feed02"
+    },
+    "streams_subscribes":{
+      "dmaap_subscriber":{
+         "dmmap_info":{
+            "topic_url":"http://dradmin:dradmin@mrsim:2222/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12"
+         },
+         "type":"message_router"
+      }
+   }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed2_CTR_feed3_LOG_TEMP.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed2_CTR_feed3_LOG_TEMP.json
new file mode 100644
index 0000000..83be949
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed2_CTR_feed3_LOG_TEMP.json
@@ -0,0 +1,33 @@
+{
+  "dmaap.ftpesConfig.keyCert": "config/dfc.jks",
+  "dmaap.ftpesConfig.keyPassword": "secret",
+  "dmaap.ftpesConfig.trustedCa": "config/ftp.jks",
+  "dmaap.ftpesConfig.trustedCaPassword": "secret",
+  "dmaap.security.trustStorePath": "change it",
+  "dmaap.security.trustStorePasswordPath": "trustStorePasswordPath",
+  "dmaap.security.keyStorePath": "keyStorePath",
+  "dmaap.security.keyStorePasswordPath": "change it",
+  "dmaap.security.enableDmaapCertAuth": "false",
+  "dmaap.dmaapProducerConfiguration": [
+    {
+      "changeIdentifier": "CTR_MEAS_FILES",
+      "feedName": "feed02"
+    },
+    {
+      "changeIdentifier": "LOG_FILES",
+      "feedName": "feed03"
+    },
+    {
+      "changeIdentifier": "TEMP_FILES",
+      "feedName": "feed03"
+    }
+  ],
+  "streams_subscribes": {
+    "dmaap_subscriber": {
+      "dmmap_info": {
+        "topic_url": "http://dradmin:dradmin@mrsim:2222/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12"
+      },
+      "type": "message_router"
+    }
+  }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed2_PM.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed2_PM.json
new file mode 100644
index 0000000..a366b4c
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed2_PM.json
@@ -0,0 +1,23 @@
+{
+   "dmaap.ftpesConfig.keyCert":"config/dfc.jks",
+   "dmaap.ftpesConfig.keyPassword":"secret",
+   "dmaap.ftpesConfig.trustedCa":"config/ftp.jks",
+   "dmaap.ftpesConfig.trustedCaPassword":"secret",
+   "dmaap.security.trustStorePath":"change it",
+   "dmaap.security.trustStorePasswordPath":"trustStorePasswordPath",
+   "dmaap.security.keyStorePath":"keyStorePath",
+   "dmaap.security.keyStorePasswordPath":"change it",
+   "dmaap.security.enableDmaapCertAuth":"false",
+   "dmaap.dmaapProducerConfiguration" : {
+         "changeIdentifier":"PM_MEAS_FILES",
+         "feedName":"feed02"
+    },
+    "streams_subscribes":{
+      "dmaap_subscriber":{
+         "dmmap_info":{
+            "topic_url":"http://dradmin:dradmin@mrsim:2222/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12"
+         },
+         "type":"message_router"
+      }
+   }
+}
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed3_PM_CTR.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed3_PM_CTR.json
new file mode 100644
index 0000000..eca72be
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/c12_feed3_PM_CTR.json
@@ -0,0 +1,29 @@
+{
+  "dmaap.ftpesConfig.keyCert": "config/dfc.jks",
+  "dmaap.ftpesConfig.keyPassword": "secret",
+  "dmaap.ftpesConfig.trustedCa": "config/ftp.jks",
+  "dmaap.ftpesConfig.trustedCaPassword": "secret",
+  "dmaap.security.trustStorePath": "change it",
+  "dmaap.security.trustStorePasswordPath": "trustStorePasswordPath",
+  "dmaap.security.keyStorePath": "keyStorePath",
+  "dmaap.security.keyStorePasswordPath": "change it",
+  "dmaap.security.enableDmaapCertAuth": "false",
+  "dmaap.dmaapProducerConfiguration": [
+    {
+      "changeIdentifier": "PM_MEAS_FILES",
+      "feedName": "feed03"
+    },
+    {
+      "changeIdentifier": "CTR_MEAS_FILES",
+      "feedName": "feed03"
+    }
+  ],
+  "streams_subscribes": {
+    "dmaap_subscriber": {
+      "dmmap_info": {
+        "topic_url": "http://dradmin:dradmin@mrsim:2222/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12"
+      },
+      "type": "message_router"
+    }
+  }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/c13_feed2_CTR.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/c13_feed2_CTR.json
new file mode 100644
index 0000000..c8e199d
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/c13_feed2_CTR.json
@@ -0,0 +1,23 @@
+{
+  "dmaap.ftpesConfig.keyCert": "config/dfc.jks",
+  "dmaap.ftpesConfig.keyPassword": "secret",
+  "dmaap.ftpesConfig.trustedCa": "config/ftp.jks",
+  "dmaap.ftpesConfig.trustedCaPassword": "secret",
+  "dmaap.security.trustStorePath": "change it",
+  "dmaap.security.trustStorePasswordPath": "trustStorePasswordPath",
+  "dmaap.security.keyStorePath": "keyStorePath",
+  "dmaap.security.keyStorePasswordPath": "change it",
+  "dmaap.security.enableDmaapCertAuth": "false",
+  "dmaap.dmaapProducerConfiguration": {
+    "changeIdentifier": "CTR_MEAS_FILES",
+    "feedName": "feed02"
+  },
+  "streams_subscribes": {
+    "dmaap_subscriber": {
+      "dmmap_info": {
+        "topic_url": "http://dradmin:dradmin@mrsim:2222/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c13/C13"
+      },
+      "type": "message_router"
+    }
+  }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/c14_feed3_LOG.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/c14_feed3_LOG.json
new file mode 100644
index 0000000..1f91a38
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/c14_feed3_LOG.json
@@ -0,0 +1,23 @@
+{
+  "dmaap.ftpesConfig.keyCert": "config/dfc.jks",
+  "dmaap.ftpesConfig.keyPassword": "secret",
+  "dmaap.ftpesConfig.trustedCa": "config/ftp.jks",
+  "dmaap.ftpesConfig.trustedCaPassword": "secret",
+  "dmaap.security.trustStorePath": "change it",
+  "dmaap.security.trustStorePasswordPath": "trustStorePasswordPath",
+  "dmaap.security.keyStorePath": "keyStorePath",
+  "dmaap.security.keyStorePasswordPath": "change it",
+  "dmaap.security.enableDmaapCertAuth": "false",
+  "dmaap.dmaapProducerConfiguration": {
+    "changeIdentifier": "LOG_FILES",
+    "feedName": "feed03"
+  },
+  "streams_subscribes": {
+    "dmaap_subscriber": {
+      "dmmap_info": {
+        "topic_url": "http://dradmin:dradmin@mrsim:2222/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c14/C14"
+      },
+      "type": "message_router"
+    }
+  }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/c15_feed1_PM_feed4_TEST.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/c15_feed1_PM_feed4_TEST.json
new file mode 100644
index 0000000..acef9b9
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/c15_feed1_PM_feed4_TEST.json
@@ -0,0 +1,29 @@
+{
+  "dmaap.ftpesConfig.keyCert": "config/dfc.jks",
+  "dmaap.ftpesConfig.keyPassword": "secret",
+  "dmaap.ftpesConfig.trustedCa": "config/ftp.jks",
+  "dmaap.ftpesConfig.trustedCaPassword": "secret",
+  "dmaap.security.trustStorePath": "change it",
+  "dmaap.security.trustStorePasswordPath": "trustStorePasswordPath",
+  "dmaap.security.keyStorePath": "keyStorePath",
+  "dmaap.security.keyStorePasswordPath": "change it",
+  "dmaap.security.enableDmaapCertAuth": "false",
+  "dmaap.dmaapProducerConfiguration": [
+    {
+      "changeIdentifier": "PM_MEAS_FILES",
+      "feedName": "feed01"
+    },
+    {
+      "changeIdentifier": "TEST_FILES",
+      "feedName": "feed04"
+    }
+  ],
+  "streams_subscribes": {
+    "dmaap_subscriber": {
+      "dmmap_info": {
+        "topic_url": "http://dradmin:dradmin@mrsim:2222/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c15/C15"
+      },
+      "type": "message_router"
+    }
+  }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/c16_feed4_TEST_feed5_TEMP.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/c16_feed4_TEST_feed5_TEMP.json
new file mode 100644
index 0000000..e10fe07
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/c16_feed4_TEST_feed5_TEMP.json
@@ -0,0 +1,29 @@
+{
+  "dmaap.ftpesConfig.keyCert": "config/dfc.jks",
+  "dmaap.ftpesConfig.keyPassword": "secret",
+  "dmaap.ftpesConfig.trustedCa": "config/ftp.jks",
+  "dmaap.ftpesConfig.trustedCaPassword": "secret",
+  "dmaap.security.trustStorePath": "change it",
+  "dmaap.security.trustStorePasswordPath": "trustStorePasswordPath",
+  "dmaap.security.keyStorePath": "keyStorePath",
+  "dmaap.security.keyStorePasswordPath": "change it",
+  "dmaap.security.enableDmaapCertAuth": "false",
+  "dmaap.dmaapProducerConfiguration": [
+    {
+      "changeIdentifier": "TEST_FILES",
+      "feedName": "feed04"
+    },
+    {
+      "changeIdentifier": "TEMP_FILES",
+      "feedName": "feed05"
+    }
+  ],
+  "streams_subscribes": {
+    "dmaap_subscriber": {
+      "dmmap_info": {
+        "topic_url": "http://dradmin:dradmin@mrsim:2222/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c15/C15"
+      },
+      "type": "message_router"
+    }
+  }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/consul/cbs_config.hcl b/test/mocks/datafilecollector-testharness/simulator-group/consul/consul/cbs_config.hcl
new file mode 100644
index 0000000..f540975
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/consul/cbs_config.hcl
@@ -0,0 +1,13 @@
+#server = true
+#bootstrap = true
+#client_addr = "0.0.0.0"
+
+service  {
+  # Name for CBS in consul, env var CONFIG_BINDING_SERVICE
+  # should be passed to dfc app with this value
+  Name = "config-binding-service"
+  # Host name where CBS is running
+  Address = "config-binding-service"
+  # Port number where CBS is running
+  Port = 10000
+}
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/consul/cbs_localhost_config.hcl b/test/mocks/datafilecollector-testharness/simulator-group/consul/consul/cbs_localhost_config.hcl
new file mode 100644
index 0000000..c2d9839
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/consul/cbs_localhost_config.hcl
@@ -0,0 +1,11 @@
+service {
+  # Name for CBS in consul, env var CONFIG_BINDING_SERVICE
+  # should be passed to dfc app with this value
+  # This is only to be used when contacting cbs via local host
+  # (typicall when dfc is executed as an application without a container)
+  Name = "config-binding-service-localhost"
+  # Host name where CBS is running
+  Address = "localhost"
+  # Port number where CBS is running
+  Port = 10000
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed1.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed1.json
new file mode 100644
index 0000000..e6769d8
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed1.json
@@ -0,0 +1,10 @@
+{
+  "feed01": {
+    "username": "user",
+    "log_url": "https://drsim:3907/feedlog/1",
+    "publish_url": "https://drsim:3907/publish/1",
+    "location": "loc00",
+    "password": "password",
+    "publisher_id": "972.360gm"
+  }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed1_2_3_4.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed1_2_3_4.json
new file mode 100644
index 0000000..aa2e6a0
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed1_2_3_4.json
@@ -0,0 +1,34 @@
+{
+  "feed01": {
+    "username": "user",
+    "log_url": "https://drsim:3907/feedlog/1",
+    "publish_url": "https://drsim:3907/publish/1",
+    "location": "loc00",
+    "password": "password",
+    "publisher_id": "972.360gm"
+  },
+    "feed02": {
+    "username": "user",
+    "log_url": "https://drsim:3907/feedlog/2",
+    "publish_url": "https://drsim:3907/publish/2",
+    "location": "loc00",
+    "password": "password",
+    "publisher_id": "972.360gm"
+  },
+    "feed03": {
+    "username": "user",
+    "log_url": "https://drsim:3907/feedlog/3",
+    "publish_url": "https://drsim:3907/publish/3",
+    "location": "loc00",
+    "password": "password",
+    "publisher_id": "972.360gm"
+  },
+    "feed04": {
+    "username": "user",
+    "log_url": "https://drsim:3907/feedlog/4",
+    "publish_url": "https://drsim:3907/publish/4",
+    "location": "loc00",
+    "password": "password",
+    "publisher_id": "972.360gm"
+  }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed1_2_3_4_5.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed1_2_3_4_5.json
new file mode 100644
index 0000000..6f28f39
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed1_2_3_4_5.json
@@ -0,0 +1,42 @@
+{
+  "feed01": {
+    "username": "user",
+    "log_url": "https://drsim:3907/feedlog/1",
+    "publish_url": "https://drsim:3907/publish/1",
+    "location": "loc00",
+    "password": "password",
+    "publisher_id": "972.360gm"
+  },
+    "feed02": {
+    "username": "user",
+    "log_url": "https://drsim:3907/feedlog/2",
+    "publish_url": "https://drsim:3907/publish/2",
+    "location": "loc00",
+    "password": "password",
+    "publisher_id": "972.360gm"
+  },
+    "feed03": {
+    "username": "user",
+    "log_url": "https://drsim:3907/feedlog/3",
+    "publish_url": "https://drsim:3907/publish/3",
+    "location": "loc00",
+    "password": "password",
+    "publisher_id": "972.360gm"
+  },
+    "feed04": {
+    "username": "user",
+    "log_url": "https://drsim:3907/feedlog/4",
+    "publish_url": "https://drsim:3907/publish/4",
+    "location": "loc00",
+    "password": "password",
+    "publisher_id": "972.360gm"
+  },
+    "feed05": {
+	 "username": "user",
+	 "log_url": "https://drsim:3907/feedlog/5",
+	 "publish_url": "https://drsim:3907/publish/4",
+	 "location": "loc00",
+	 "password": "password",
+	 "publisher_id": "972.360gm"
+	  }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed2.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed2.json
new file mode 100644
index 0000000..bea360c
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed2.json
@@ -0,0 +1,10 @@
+{
+  "feed02": {
+    "username": "user",
+    "log_url": "https://drsim:3907/feedlog/2",
+    "publish_url": "https://drsim:3907/publish/2",
+    "location": "loc00",
+    "password": "password",
+    "publisher_id": "972.360gm"
+  }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed2_3.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed2_3.json
new file mode 100644
index 0000000..a84bf33
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed2_3.json
@@ -0,0 +1,18 @@
+{
+  "feed02": {
+    "username": "user",
+    "log_url": "https://drsim:3907/feedlog/2",
+    "publish_url": "https://drsim:3907/publish/2",
+    "location": "loc00",
+    "password": "password",
+    "publisher_id": "972.360gm"
+  },
+  "feed03": {
+    "username": "user",
+    "log_url": "https://drsim:3907/feedlog/3",
+    "publish_url": "https://drsim:3907/publish/3",
+    "location": "loc00",
+    "password": "password",
+    "publisher_id": "972.360gm"
+  }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed3.json b/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed3.json
new file mode 100644
index 0000000..11138e3
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul/dmaap_feed3.json
@@ -0,0 +1,10 @@
+{
+  "feed03": {
+    "username": "user",
+    "log_url": "https://drsim:3907/feedlog/3",
+    "publish_url": "https://drsim:3907/publish/3",
+    "location": "loc00",
+    "password": "password",
+    "publisher_id": "972.360gm"
+  }
+}
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/consul_config.sh b/test/mocks/datafilecollector-testharness/simulator-group/consul_config.sh
new file mode 100755
index 0000000..a3492b9
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/consul_config.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+# Script to configure consul with json configuration files with 'localhost' urls. This
+# is needed when running the simulator as as a stand-alone app or via a dfc container in 'host' network mode. 
+# Assuming the input json files hostnames for MR and DR simulators are given as 'mrsim'/'drsim'
+# See available consul files in the consul dir
+# The script stores a json config for 'dfc_app'<dfc-instance-id>' if arg 'app' is given.
+# And for 'dfc_app'<dfc-instance-id>':dmaap' if arg 'dmaap' is given.
+# Instance id shall be and integer in the range 0..5
+
+. ../common/test_env.sh
+
+if [ $# != 3 ]; then
+	echo "Script needs three args, app|dmaap <dfc-instance-id> <json-file-path>"
+	exit 1
+fi
+
+if [ $2 -lt 0 ] || [ $2 -gt $DFC_MAX_IDX ]; then
+	__print_err "dfc-instance-id should be 0.."$DFC_MAX_IDX
+	exit 1
+fi
+if ! [ -f $3 ]; then
+	__print_err "json file does not extis: "$3
+	exit 1
+fi
+
+if [ $1 == "app" ]; then
+	appname=$DFC_APP_BASE$2
+	echo "Replacing 'mrsim' with 'localhost' in json app config for consul"
+	sed 's/mrsim/localhost/g' $3 > .tmp_file.json
+elif [ $1 == "dmaap" ]; then
+	appname=$DFC_APP_BASE$2":dmaap"
+	echo "Replacing 'drsim' with 'localhost' in json dmaap config for consul"
+	sed 's/drsim/localhost/g' $3 > .tmp_file.json
+else
+	__print_err "config type should be 'app' or 'dmaap'"
+	exit 1
+fi
+
+echo "Configuring consul for " $appname " from " $3
+curl -s http://127.0.0.1:${CONSUL_PORT}/v1/kv/${appname}?dc=dc1 -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' -H 'X-Requested-With: XMLHttpRequest' --data-binary "@"$tmp_file.json >/dev/null
+
+echo "done"
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/dfc-internal-stats.sh b/test/mocks/datafilecollector-testharness/simulator-group/dfc-internal-stats.sh
new file mode 100755
index 0000000..9fbe961
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/dfc-internal-stats.sh
@@ -0,0 +1,103 @@
+#!/bin/bash
+
+# Script to print internal dfc stats every 5 sec to screen and file
+# Default port is 8100 for DFC
+# Useage: ./dfc-internal-stats.sh all|internal|jvm [<dfc-port-number>]
+
+print_usage() {
+	echo "Useage: ./dfc-internal-stats.sh all|internal|jvm [<dfc-port-number>]"
+}
+stat=""
+if [ $# -eq 0 ]; then
+	dfcport=8100
+	stat="all"
+elif [ $# -eq 1 ]; then
+	dfcport=8100
+	stat=$1
+elif [ $# -eq 2 ]; then
+	dfcport=$2
+	stat=$1
+else
+	print_usage
+	exit 1
+fi
+
+heading=1
+
+if [ $stat == "all" ]; then
+	echo "Printing stats for both JVM and DFC using port "$dfcport
+elif [ $stat == "internal" ]; then
+	echo "Printing stats for DFC using port "$dfcport
+elif [ $stat == "jvm" ]; then
+	echo "Printing stats for JVM using port "$dfcport
+else
+	print_usage
+	exit 1
+fi
+fileoutput="./.tmp_stats.txt"
+
+echo "Stats piped to file: "$fileoutput
+
+rm $fileoutput
+
+
+
+floatToInt() {
+    printf "%.0f\n" "$@"
+}
+
+do_curl_actuator() {
+    val=$(curl -s localhost:${dfcport}/actuator/metrics/${1} |  grep -o -E "\"value\":[0-9.E]+" | awk -F\: '{print $2}')
+    val=$(floatToInt $val)
+    printf "%-20s %+15s\n" $1 $val
+    if [ $heading -eq 1 ]; then
+    	echo -n "," $1 >> $fileoutput
+    else
+    	echo -n "," $val >> $fileoutput
+    fi
+}
+
+do_curl_status() {
+	    curl -s localhost:${dfcport}/status > ./.tmp_curl_res
+	    cat ./.tmp_curl_res
+	    while read line; do
+	    	len=${#line}
+	    	if [ $len -gt 0 ]; then
+	    	    val=${line#*:}
+    			id=${line%"$val"}
+	    		if [ $heading -eq 1 ]; then
+    				echo -n "," $id >> $fileoutput
+    			else
+    				echo -n "," $val >> $fileoutput
+    			fi
+    		fi
+		done < ./.tmp_curl_res
+
+}
+
+
+while [ true ]; do
+	if [ $heading -eq 1 ]; then
+    	echo  -n "date" >> $fileoutput
+    else
+    	ds=$(date)
+    	echo -n $ds >> $fileoutput
+    fi
+    if [ $stat == "all" ] || [ $stat == "jvm" ]; then
+    	echo "=========    DFC JVM Stats   ========="
+    	do_curl_actuator jvm.threads.live
+    	do_curl_actuator jvm.threads.peak
+    	do_curl_actuator process.files.open
+    	do_curl_actuator process.files.max
+    	do_curl_actuator jvm.memory.used
+    	do_curl_actuator jvm.memory.max
+    fi
+
+	if [ $stat == "all" ] || [ $stat == "internal" ]; then
+    	echo "========= DFC internal Stats ========="
+    	do_curl_status
+    fi
+	echo ""  >> $fileoutput
+	heading=0
+    sleep 5
+done
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/docker-compose-setup.sh b/test/mocks/datafilecollector-testharness/simulator-group/docker-compose-setup.sh
index b9b38f8..b212fc2 100755
--- a/test/mocks/datafilecollector-testharness/simulator-group/docker-compose-setup.sh
+++ b/test/mocks/datafilecollector-testharness/simulator-group/docker-compose-setup.sh
@@ -1,14 +1,28 @@
 #/bin/bash
 
-#Script for manually starting all simulators with test setting below
+# Script for manually starting all simulators with test setting below
+# Matching json config is needed in CBS/Consul as well. Use consul_config.sh to add config to consul
 
-export DR_TC="--tc normal"           #Test behaviour for DR sim
-export DR_REDIR_TC="--tc normal"     #Test behaviour for DR redir sim
-export MR_TC="--tc710"               #Test behaviour for MR sim
-export BC_TC=""  #Not in use yet
-export NUM_FTPFILES="105"            #Number of FTP files to generate per PNF
-export NUM_PNFS="700"                #Number of unuqie PNFs to generate FTP file for
-export FILE_SIZE="1MB"               #File size for FTP file (1KB, 1MB, 5MB, 50MB or ALL)
-export FTP_TYPE="SFTP"               #Type of FTP files to generate (SFTP, FTPS or ALL)
+export MR_TC="--tc710"                                 # Test behaviour for MR sim
+export MR_GROUPS="OpenDcae-c12:PM_MEAS_FILES"          # Comma-separated list of <consumer-group>:<change-identifier>
+export MR_FILE_PREFIX_MAPPING="PM_MEAS_FILES:A"        # Comma-separated list of <change-identifer>:<file-name-prefix>
 
-source ./simulators-start.sh
\ No newline at end of file
+export DR_TC="--tc normal"                             # Test behaviour for DR sim
+export DR_FEEDS="1:A,2:B,3:C,4:D"                      # Comma-separated of <feed-id>:<file-name-prefixes> for DR sim
+
+export DR_REDIR_TC="--tc normal"                       # Test behaviour for DR redir sim
+export DR_REDIR_FEEDS="1:A,2:B,3:C,4:D"                # Comma-separated of <feed-id>:<file-name-prefixes> for DR redir sim
+
+export NUM_FTPFILES="105"                              # Number of FTP files to generate per PNF
+export NUM_PNFS="700"                                  # Number of unuqie PNFs to generate FTP file for
+export FILE_SIZE="1MB"                                 # File size for FTP file (1KB, 1MB, 5MB, 50MB or ALL)
+export FTP_TYPE="SFTP"                                 # Type of FTP files to generate (SFTP, FTPS or ALL)
+export FTP_FILE_PREFIXES="A,B,C,D"                     # Comma separated list of file name prefixes for ftp files
+export NUM_FTP_SERVERS=1                               # Number of FTP server to distribute the PNFs (Max 5)
+
+export SFTP_SIMS="localhost:21,localhost:22,localhost:23,localhost:24,localhost:25"  # Comma separated list for SFTP servers host:port
+export FTPS_SIMS="localhost:1022,localhost:1023,localhost:1024,localhost:1026,localhost:1026" # Comma separated list for FTPS servers host:port
+
+export DR_REDIR_SIM="localhost"                               # Hostname of DR redirect server
+
+source ./simulators-start.sh
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/docker-compose-template.yml b/test/mocks/datafilecollector-testharness/simulator-group/docker-compose-template.yml
index 8505631..f078d36 100644
--- a/test/mocks/datafilecollector-testharness/simulator-group/docker-compose-template.yml
+++ b/test/mocks/datafilecollector-testharness/simulator-group/docker-compose-template.yml
@@ -1,17 +1,40 @@
 version: '2'
 
 networks:
-  dfcnet:
-    ipam:
-      config:
-        - subnet: 192.168.100.0/16
-          
+   dfcnet:
+      external:
+         name: dfcnet
+
 services:
-      
+
+  consul-server:
+    networks:
+      - dfcnet
+    container_name: dfc_consul
+    image: docker.io/consul:1.4.4
+    ports:
+      - "8500:8500"
+    volumes:
+      - ./consul/consul/:/consul/config
+
+  config-binding-service:
+    networks:
+      - dfcnet
+    container_name: dfc_cbs
+    image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding.app-app:2.3.0
+    ports:
+      - "10000:10000"
+    environment:
+      - CONSUL_HOST=consul-server
+    depends_on:
+      - consul-server
+
   drsim:
     networks:
-      dfcnet:
-        ipv4_address: 192.168.100.2
+      - dfcnet
+    environment:
+        DRR_SIM_IP: ${DR_REDIR_SIM}
+        DR_FEEDS: ${DR_FEEDS}
     image: drsim_common:latest
     ports:
      - "3906:3906"
@@ -21,8 +44,10 @@
 
   drsim_redir:
     networks:
-      dfcnet:
-        ipv4_address: 192.168.100.3
+      - dfcnet
+    environment: 
+        DR_SIM_IP: drsim
+        DR_REDIR_FEEDS: ${DR_REDIR_FEEDS}
     image: drsim_common:latest
     ports:
      - "3908:3908"
@@ -32,42 +57,131 @@
 
   mrsim:
     networks:
-      dfcnet:
-        ipv4_address: 192.168.100.1
+      - dfcnet
+    environment:
+        SFTP_SIMS: ${SFTP_SIMS}
+        FTPS_SIMS: ${FTPS_SIMS}
+        NUM_FTP_SERVERS: ${NUM_FTP_SERVERS}
+        MR_GROUPS: ${MR_GROUPS}
+        MR_FILE_PREFIX_MAPPING: ${MR_FILE_PREFIX_MAPPING}
     image: mrsim:latest
     ports:
      - "2222:2222"
     container_name: dfc_mr-sim
     command: python mr-sim.py ${MR_TC}
 
-  sftp-server:
-    network_mode: bridge
-    container_name: dfc_sftp-server
+  sftp-server0:
+    networks:
+      - dfcnet
+    container_name: dfc_sftp-server0
     image: atmoz/sftp:alpine
     ports:
       - "1022:22"
     restart: on-failure
     command: onap:pano:1001
 
-
-  ftpes-server-vsftpd:
-    network_mode: bridge
-    container_name: dfc_ftpes-server-vsftpd
-    image: docker.io/panubo/vsftpd
+  sftp-server1:
+    networks:
+      - dfcnet
+    container_name: dfc_sftp-server1
+    image: atmoz/sftp:alpine
     ports:
-      - "21:21"
-      - "8001-8010:8001-8010"
+      - "1023:22"
+    restart: on-failure
+    command: onap:pano:1001
+
+  sftp-server2:
+    networks:
+      - dfcnet
+    container_name: dfc_sftp-server2
+    image: atmoz/sftp:alpine
+    ports:
+      - "1024:22"
+    restart: on-failure
+    command: onap:pano:1001
+
+  sftp-server3:
+    networks:
+      - dfcnet
+    container_name: dfc_sftp-server3
+    image: atmoz/sftp:alpine
+    ports:
+      - "1025:22"
+    restart: on-failure
+    command: onap:pano:1001
+
+  sftp-server4:
+    networks:
+      - dfcnet
+    container_name: dfc_sftp-server4
+    image: atmoz/sftp:alpine
+    ports:
+      - "1026:22"
+    restart: on-failure
+    command: onap:pano:1001
+
+  ftpes-server-vsftpd0:
+    networks:
+      - dfcnet
+    container_name: dfc_ftpes-server-vsftpd0
+    image: ftps_vsftpd:latest
+    ports:
+      - "1032:21"
     environment:
       FTP_USER: onap
       FTP_PASSWORD: pano
-      PASV_ADDRESS: localhost
-      PASV_MIN_PORT: 8001
-      PASV_MAX_PORT: 8010
-    volumes:
-      - ./tls/ftp.crt:/etc/ssl/private/ftp.crt:ro
-      - ./tls/ftp.key:/etc/ssl/private/ftp.key:ro
-      - ./tls/dfc.crt:/etc/ssl/private/dfc.crt:ro
-      - ./configuration/vsftpd_ssl.conf:/etc/vsftpd_ssl.conf:ro
-
     restart: on-failure
     command: vsftpd /etc/vsftpd_ssl.conf
+
+  ftpes-server-vsftpd1:
+    networks:
+      - dfcnet
+    container_name: dfc_ftpes-server-vsftpd1
+    image: ftps_vsftpd:latest
+    ports:
+      - "1033:21"
+    environment:
+      FTP_USER: onap
+      FTP_PASSWORD: pano
+    restart: on-failure
+    command: vsftpd /etc/vsftpd_ssl.conf
+
+  ftpes-server-vsftpd2:
+    networks:
+      - dfcnet
+    container_name: dfc_ftpes-server-vsftpd2
+    image: ftps_vsftpd:latest
+    ports:
+      - "1034:21"
+    environment:
+      FTP_USER: onap
+      FTP_PASSWORD: pano
+    restart: on-failure
+    command: vsftpd /etc/vsftpd_ssl.conf
+
+  ftpes-server-vsftpd3:
+    networks:
+      - dfcnet
+    container_name: dfc_ftpes-server-vsftpd3
+    image: ftps_vsftpd:latest
+    ports:
+      - "1035:21"
+    environment:
+      FTP_USER: onap
+      FTP_PASSWORD: pano
+    restart: on-failure
+    command: vsftpd /etc/vsftpd_ssl.conf
+
+  ftpes-server-vsftpd4:
+    networks:
+      - dfcnet
+    container_name: dfc_ftpes-server-vsftpd4
+    image: ftps_vsftpd:latest
+    ports:
+      - "1036:21"
+    environment:
+      FTP_USER: onap
+      FTP_PASSWORD: pano
+    restart: on-failure
+    command: vsftpd /etc/vsftpd_ssl.conf
+
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/prepare-images.sh b/test/mocks/datafilecollector-testharness/simulator-group/prepare-images.sh
new file mode 100755
index 0000000..666e14a
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/simulator-group/prepare-images.sh
@@ -0,0 +1,19 @@
+#/bin/bash
+
+#Script for manually preparing images for mr-sim, dr-sim, dr-redir-sim and sftp server.
+
+#Build MR sim
+cd ../mr-sim
+
+docker build -t mrsim:latest .
+
+#Build DR sim common image
+cd ../dr-sim
+
+docker build -t drsim_common:latest .
+
+#Build image for ftps server
+cd ../ftps-sftp-server
+
+docker build -t ftps_vsftpd:latest -f Dockerfile-ftps .
+
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/setup-ftp-files-for-image.sh b/test/mocks/datafilecollector-testharness/simulator-group/setup-ftp-files-for-image.sh
index 7685c81..b1fa01e 100755
--- a/test/mocks/datafilecollector-testharness/simulator-group/setup-ftp-files-for-image.sh
+++ b/test/mocks/datafilecollector-testharness/simulator-group/setup-ftp-files-for-image.sh
@@ -4,44 +4,61 @@
 # The file names matches the files names in the events polled from the MR simulator.
 # Intended for execution in the running ftp containers in the ftp-root dir.
 
-NUM=200 #Default number of files 
+NUM=200 #Default number of files
 PNFS=1 #Default number of PNFs
 FSIZE="ALL"
+PREFIXES="A"
+FTP_SERV_INDEX=0
+NUM_FTP_SERVERS=1
 
-if [ $# -eq 1 ]; then 
+if [ $# -ge 1 ]; then
     NUM=$1
-elif [ $# -eq 2 ]; then
-    NUM=$1
+fi
+if [ $# -ge 2 ]; then
     PNFS=$2
-elif [ $# -eq 3 ]; then
-	NUM=$1
-    PNFS=$2
+fi
+if [ $# -ge 3 ]; then
     FSIZE=$3
     if [ $3 != "1KB" ] && [ $3 != "1MB" ] && [ $3 != "5MB" ]  && [ $3 != "50MB" ]  && [ $3 != "ALL" ]; then
     	echo "File size shall be 1KB|1MB|5MB|50MB|ALL"
     	exit
     fi
-else
-    echo "Wrong args, usage: setup-ftp-files-for-image.sh [ <num-files> [ <num-PNFs> [ 1KB|1MB|5MB|50MB ] ] ]"
+fi
+if [ $# -ge 4 ]; then
+	PREFIXES=$4
+fi
+if [ $# -ge 5 ]; then
+	NUM_FTP_SERVERS=$5
+fi
+if [ $# -ge 6 ]; then
+	FTP_SERV_INDEX=$6
+fi
+if [ $# -lt 1 ] || [ $# -gt 6 ]; then
+    echo "Wrong args, usage: setup-ftp-files-for-image.sh [ <num-files> [ <num-PNFs> [ 1KB|1MB|5MB|50MB [ <comma-separated-file-name-prefixs> [ <number-of-ftp-servers> <ftp-server-index> ] ] ] ] ] ]"
     exit
 fi
 
-echo "Running ftp file creations. " $PNFS " PNFs and " $NUM " files for each PNF with file size(s) "$FSIZE
+echo "Running ftp file creations. " $PNFS " PNFs and " $NUM " files for each PNF with file size(s) " $FSIZE "and file prefixe(s) " $PREFIXES " in ftp servers with index " $FTP_SERV_INDEX
 
 truncate -s 1KB 1KB.tar.gz
 truncate -s 1MB 1MB.tar.gz
 truncate -s 5MB 5MB.tar.gz
 truncate -s 50MB 50MB.tar.gz
 
-p=0
-while [ $p -lt $PNFS ]; do 
-    i=0
-    while [ $i -lt $NUM ]; do  #Problem with for loop and var substituion in curly bracket....so used good old style loop
-    	if [ $FSIZE = "ALL" ] || [ $FSIZE = "1KB" ]; then ln -s 1KB.tar.gz 'A20000626.2315+0200-2330+0200_PNF'$p'-'$i'-1KB.tar.gz' >& /dev/null; fi
-        if [ $FSIZE = "ALL" ] || [ $FSIZE = "1MB" ]; then ln -s 1MB.tar.gz 'A20000626.2315+0200-2330+0200_PNF'$p'-'$i'-1MB.tar.gz' >& /dev/null; fi
-        if [ $FSIZE = "ALL" ] || [ $FSIZE = "5MB" ]; then ln -s 5MB.tar.gz 'A20000626.2315+0200-2330+0200_PNF'$p'-'$i'-5MB.tar.gz' >& /dev/null; fi
-        if [ $FSIZE = "ALL" ] || [ $FSIZE = "50MB" ]; then ln -s 50MB.tar.gz 'A20000626.2315+0200-2330+0200_PNF'$p'-'$i'-50MB.tar.gz' >& /dev/null; fi
-    let i=i+1
-    done
-    let p=p+1
+for fnp in ${PREFIXES//,/ }
+do
+	p=0
+	while [ $p -lt $PNFS ]; do
+		if [[ $(($p%$NUM_FTP_SERVERS)) == $FTP_SERV_INDEX ]]; then
+    		i=0
+    		while [ $i -lt $NUM ]; do  #Problem with for loop and var substituion in curly bracket....so used good old style loop
+    			if [ $FSIZE = "ALL" ] || [ $FSIZE = "1KB" ]; then ln -s 1KB.tar.gz $fnp'20000626.2315+0200-2330+0200_PNF'$p'-'$i'-1KB.tar.gz' >& /dev/null; fi
+        		if [ $FSIZE = "ALL" ] || [ $FSIZE = "1MB" ]; then ln -s 1MB.tar.gz $fnp'20000626.2315+0200-2330+0200_PNF'$p'-'$i'-1MB.tar.gz' >& /dev/null; fi
+        		if [ $FSIZE = "ALL" ] || [ $FSIZE = "5MB" ]; then ln -s 5MB.tar.gz $fnp'20000626.2315+0200-2330+0200_PNF'$p'-'$i'-5MB.tar.gz' >& /dev/null; fi
+        		if [ $FSIZE = "ALL" ] || [ $FSIZE = "50MB" ]; then ln -s 50MB.tar.gz $fnp'20000626.2315+0200-2330+0200_PNF'$p'-'$i'-50MB.tar.gz' >& /dev/null; fi
+    			let i=i+1
+    		done
+    	fi
+    	let p=p+1
+	done
 done
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/sim-monitor-start.sh b/test/mocks/datafilecollector-testharness/simulator-group/sim-monitor-start.sh
index 52c8c1c..79aab90 100755
--- a/test/mocks/datafilecollector-testharness/simulator-group/sim-monitor-start.sh
+++ b/test/mocks/datafilecollector-testharness/simulator-group/sim-monitor-start.sh
@@ -1,7 +1,7 @@
 #/bin/bash
 
-#Script to start the sim-monitor
+#Script to install dependencies and start the sim-monitor
 
-#Re-using modules for dr-sim
-cp -r ../dr-sim/node_modules .
-node sim-monitor.js
\ No newline at end of file
+npm install express
+node sim-monitor
+
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/sim-monitor.js b/test/mocks/datafilecollector-testharness/simulator-group/sim-monitor.js
index 634d144..e15b637 100644
--- a/test/mocks/datafilecollector-testharness/simulator-group/sim-monitor.js
+++ b/test/mocks/datafilecollector-testharness/simulator-group/sim-monitor.js
@@ -1,7 +1,14 @@
+// Sim mon server - query the simulators for counters and other data
+// Presents a web page on localhost:9999/mon
+
 var http = require('http');
 
 var express = require('express');
 var app = express();
+var fieldSize=32;
+
+var dfcHeadings=[];
+var dfcVal=[];
 
 //I am alive
 app.get("/",function(req, res){
@@ -19,12 +26,6 @@
 
   		// The whole response has been received.
   		resp.on('end', () => {
-  			//Pad data to fixed length
-  			var i = 20-data.length;
-  			while(i>0) {
-  				data = data+"&nbsp;";
-  				i--;
-  			}
     		cb(data);
   		});
 
@@ -34,75 +35,203 @@
 	});
 };
 
+
+//Format a comma separated list of data to a html-safe string with fixed fieldsizes
+function formatDataRow(commaList) {
+	var str = "";
+	var tmp=commaList.split(',');
+    for(i=0;i<tmp.length;i++) {
+        data=tmp[i];
+        var len = fieldSize-data.length;
+        while(len>0) {
+            data = data+"&nbsp;";
+            len--;
+        }
+        str=str+data+"&nbsp;&nbsp;&nbsp;";
+     }
+	return str;
+}
+
+//Format a comma separated list of ids to a html-safe string with fixed fieldsizes
+function formatIdRow(commaList) {
+	var str = "";
+	var tmp=commaList.split(',');
+    for(i=0;i<tmp.length;i++) {
+    	tmp[i] = tmp[i].trim();
+        data="&lt"+tmp[i]+"&gt";
+        var len = fieldSize+4-data.length;
+        while(len>0) {
+            data = data+"&nbsp;";
+            len--;
+        }
+        str=str+data+"&nbsp;&nbsp;&nbsp;";
+    }
+	return str;
+}
+
+//Format a list of ids to a html-safe string in compact format
+function formatIdRowCompact(commaList) {
+	var str = "";
+	var tmp=commaList.split(',');
+    for(i=0;i<tmp.length;i++) {
+    	tmp[i] = tmp[i].trim();
+        data="&lt"+tmp[i]+"&gt";
+        str=str+data+"&nbsp;";
+    }
+	return str;
+}
+
+function buildDfcData(dfc, idx) {
+
+	if (dfcHeadings.length == 0) {
+		dfcVal[0]=[];
+		dfcVal[1]=[];
+		dfcVal[2]=[];
+		dfcVal[3]=[];
+		dfcVal[4]=[];
+		if (dfc.indexOf("no response") > -1) {
+			return;
+		} else {
+			dfc=dfc.replace(/\n/g, " ");
+			dfc=dfc.replace(/\r/g, " ");
+			var tmp=dfc.split(' ');
+			var ctr=0
+			for(i=0;i<tmp.length;i++) {
+				tmp[i]=tmp[i].trim();
+				if (tmp[i].length>0) {
+					if (ctr%2==0) {
+						dfcHeadings[ctr/2]=tmp[i];
+					}
+					ctr=ctr+1;
+				}
+			}
+		}
+	}
+	if (dfcHeadings.length > 0) {
+		if (dfc.indexOf("no response") > -1) {
+			dfcVal[idx]=[];
+			return;
+		} else {
+			dfc=dfc.replace(/\n/g, " ");
+			dfc=dfc.replace(/\r/g, " ");
+			var tmp=dfc.split(' ');
+			var ctr=0
+			for(i=0;i<tmp.length;i++) {
+				tmp[i]=tmp[i].trim();
+				if (tmp[i].length>0) {
+					if (ctr%2==1) {
+						dfcVal[idx][Math.trunc(ctr/2)]=""+tmp[i];
+					}
+					ctr=ctr+1;
+				}
+			}
+		}
+	}
+}
+
+function padding(val, fieldSize, pad) {
+	s=""+val;
+	for(i=s.length;i<fieldSize;i++) {
+		s=s+pad
+	}
+	return s;
+}
+
 //Status variables, for parameters values fetched from other simulators
-var mr1, mr2, mr3, mr4, mr5, mr6, mr7, mr8, mr9, mr10;
+var mr1="", mr2="", mr3="", mr4="", mr5="", mr6="", mr7="", mr8="", mr9="", mr10="", mr11="", mr12="", mr13="";
 
-var dr1, dr2, dr3, dr4, dr5, dr6, dr7, dr8, dr9, dr10;
+var dr1="", dr2="", dr3="", dr4="", dr5="", dr6="", dr7="", dr8="", dr9="", dr10="", dr11="", dr12="", dr13="";
 
-var drr1, drr2, drr3, drr4, drr5, drr6;
+var drr1="", drr2="", drr3="", drr4="", drr5="", drr6="", drr7="", drr8="", drr9="";
 
 //Heartbeat var
-var dfc1;
+var dfc0,dfc1,dfc2,dfc3,dfc4;
 
 app.get("/mon",function(req, res){
 
 	//DFC
-	getSimCtr("http://127.0.0.1:8100/heartbeat", function(data) {
+	getSimCtr("http://127.0.0.1:8100/status", function(data) {
+		dfc0 = data;
+		buildDfcData(dfc0, 0);
+    });
+	getSimCtr("http://127.0.0.1:8101/status", function(data) {
 		dfc1 = data;
+		buildDfcData(dfc1, 1);
+    });
+	getSimCtr("http://127.0.0.1:8102/status", function(data) {
+		dfc2 = data;
+		buildDfcData(dfc2, 2);
+    });
+	getSimCtr("http://127.0.0.1:8103/status", function(data) {
+		dfc3 = data;
+		buildDfcData(dfc3, 3);
+    });
+	getSimCtr("http://127.0.0.1:8104/status", function(data) {
+		dfc4 = data;
+		buildDfcData(dfc4, 4);
     });
 
 	//MR
-    getSimCtr("http://127.0.0.1:2222/ctr_requests", function(data) {
+    getSimCtr("http://127.0.0.1:2222/groups/ctr_requests", function(data) {
     	mr1 = data;
     });
-    getSimCtr("http://127.0.0.1:2222/ctr_responses", function(data) {
+    getSimCtr("http://127.0.0.1:2222/groups/ctr_responses", function(data) {
     	mr2 = data;
     });
-    getSimCtr("http://127.0.0.1:2222/ctr_unique_files", function(data) {
+    getSimCtr("http://127.0.0.1:2222/groups/ctr_unique_files", function(data) {
     	mr3 = data;
     });
     getSimCtr("http://127.0.0.1:2222/tc_info", function(data) {
     	mr4 = data;
     });
-    getSimCtr("http://127.0.0.1:2222/ctr_events", function(data) {
+    getSimCtr("http://127.0.0.1:2222/groups/ctr_events", function(data) {
     	mr5 = data;
     });
     getSimCtr("http://127.0.0.1:2222/execution_time", function(data) {
     	mr6 = data;
     });
-    getSimCtr("http://127.0.0.1:2222/ctr_unique_PNFs", function(data) {
+    getSimCtr("http://127.0.0.1:2222/groups/ctr_unique_PNFs", function(data) {
     	mr7 = data;
     });
-    getSimCtr("http://127.0.0.1:2222/exe_time_first_poll", function(data) {
+    getSimCtr("http://127.0.0.1:2222/groups/exe_time_first_poll", function(data) {
     	mr8 = data;
     });
-    getSimCtr("http://127.0.0.1:2222/ctr_files", function(data) {
+    getSimCtr("http://127.0.0.1:2222/groups/ctr_files", function(data) {
     	mr9 = data;
     });
     getSimCtr("http://127.0.0.1:2222/status", function(data) {
     	mr10 = data;
     });
+    getSimCtr("http://127.0.0.1:2222/groups", function(data) {
+    	mr11 = data;
+    });
+    getSimCtr("http://127.0.0.1:2222/changeids", function(data) {
+    	mr12 = data;
+    });
+    getSimCtr("http://127.0.0.1:2222/fileprefixes", function(data) {
+    	mr13 = data;
+    });
 
     //DR
-    getSimCtr("http://127.0.0.1:3906/ctr_publish_query", function(data) {
+    getSimCtr("http://127.0.0.1:3906/feeds/ctr_publish_query", function(data) {
     	dr1 = data;
     });
-    getSimCtr("http://127.0.0.1:3906/ctr_publish_query_published", function(data) {
+    getSimCtr("http://127.0.0.1:3906/feeds/ctr_publish_query_published", function(data) {
     	dr2 = data;
-    });    
-    getSimCtr("http://127.0.0.1:3906/ctr_publish_query_not_published", function(data) {
+    });
+    getSimCtr("http://127.0.0.1:3906/feeds/ctr_publish_query_not_published", function(data) {
     	dr3 = data;
     });
-    getSimCtr("http://127.0.0.1:3906/ctr_publish_req", function(data) {
+    getSimCtr("http://127.0.0.1:3906/feeds/ctr_publish_req", function(data) {
     	dr4 = data;
     });
-    getSimCtr("http://127.0.0.1:3906/ctr_publish_req_redirect", function(data) {
+    getSimCtr("http://127.0.0.1:3906/feeds/ctr_publish_req_redirect", function(data) {
     	dr5 = data;
     });
-    getSimCtr("http://127.0.0.1:3906/ctr_publish_req_published", function(data) {
+    getSimCtr("http://127.0.0.1:3906/feeds/ctr_publish_req_published", function(data) {
     	dr6 = data;
     });
-    getSimCtr("http://127.0.0.1:3906/ctr_published_files", function(data) {
+    getSimCtr("http://127.0.0.1:3906/feeds/ctr_published_files", function(data) {
     	dr7 = data;
     });
     getSimCtr("http://127.0.0.1:3906/tc_info", function(data) {
@@ -111,15 +240,24 @@
     getSimCtr("http://127.0.0.1:3906/execution_time", function(data) {
     	dr9 = data;
     });
-    getSimCtr("http://127.0.0.1:3906/ctr_double_publish", function(data) {
+    getSimCtr("http://127.0.0.1:3906/feeds/ctr_double_publish", function(data) {
     	dr10 = data;
     });
+    getSimCtr("http://127.0.0.1:3906/feeds", function(data) {
+    	dr11=data;
+    });
+    getSimCtr("http://127.0.0.1:3906/feeds/ctr_publish_query_bad_file_prefix", function(data) {
+    	dr12=data;
+    });
+    getSimCtr("http://127.0.0.1:3906/feeds/ctr_publish_req_bad_file_prefix",function(data) {
+    	dr13=data;
+    });
 
     //DR REDIR
-    getSimCtr("http://127.0.0.1:3908/ctr_publish_requests", function(data) {
+    getSimCtr("http://127.0.0.1:3908/feeds/ctr_publish_requests", function(data) {
     	drr1 = data;
     });
-    getSimCtr("http://127.0.0.1:3908/ctr_publish_responses", function(data) {
+    getSimCtr("http://127.0.0.1:3908/feeds/ctr_publish_responses", function(data) {
     	drr2 = data;
     });
     getSimCtr("http://127.0.0.1:3908/tc_info", function(data) {
@@ -128,66 +266,117 @@
     getSimCtr("http://127.0.0.1:3908/execution_time", function(data) {
     	drr4 = data;
     });
-    getSimCtr("http://127.0.0.1:3908/time_lastpublish", function(data) {
+    getSimCtr("http://127.0.0.1:3908/feeds/time_lastpublish", function(data) {
     	drr5 = data;
     });
-    getSimCtr("http://127.0.0.1:3908/dwl_volume", function(data) {
+    getSimCtr("http://127.0.0.1:3908/feeds/dwl_volume", function(data) {
     	drr6 = data;
     });
+    getSimCtr("http://127.0.0.1:3908/feeds", function(data) {
+    	drr7=data;
+    });
+    getSimCtr("http://127.0.0.1:3908/feeds/ctr_publish_requests_bad_file_prefix", function(data) {
+    	drr8 = data;
+    });
+    getSimCtr("http://127.0.0.1:3908/speed", function(data) {
+    	drr9 = data;
+    });
 
   //Build web page
 	var str = "<!DOCTYPE html>" +
           "<html>" +
           "<head>" +
-            "<meta http-equiv=\"refresh\" content=\"5\">"+  //5 sec auto reefresh
+            "<meta http-equiv=\"refresh\" content=\"5\">"+  //5 sec auto refresh
             "<title>DFC and simulator monitor</title>"+
             "</head>" +
             "<body>" +
-            "<h3>DFC</h3>" +
-            "<font face=\"Courier New\">"+
-            "Heartbeat:....................................." + dfc1 + "<br>" +
-            "</font>"+
+            "<h3>DFC apps</h3>" +
+            "<font face=\"monospace\">";
+//            "dfc_app0: " + dfc0 + "<br>" +
+//            "dfc_app1: " + dfc1 + "<br>" +
+//            "dfc_app2: " + dfc2 + "<br>" +
+//            "dfc_app3: " + dfc3 + "<br>" +
+//            "dfc_app4: " + dfc4 + "<br>";
+
+	for(id=0;id<5;id++) {
+		if (id==0) {
+			str=str+padding("Instance",22,".");
+			str=str+"&nbsp;"+"&nbsp;";
+		}
+		str=str+padding("dfc_app"+id,26, "&nbsp;");
+		str=str+"&nbsp;"+"&nbsp;";
+	}
+	str=str+"<br>";
+
+	if (dfcHeadings.length > 0) {
+		var hl=0;
+		for(hl=0;hl<dfcHeadings.length;hl++) {
+			str=str+padding(dfcHeadings[hl], 22, ".");
+			for(id=0;id<5;id++) {
+				if (dfcVal[id].length > 0) {
+					val=""+padding(dfcVal[id][hl], 26, "&nbsp;");
+				} else {
+					val=""+padding("-", 26, "&nbsp;");
+				}
+				str=str+"&nbsp;"+"&nbsp;"+val;
+			}
+			str=str+"<br>";
+		}
+	}
+
+            str=str+"</font>"+
             "<h3>MR Simulator</h3>" +
-            "<font face=\"Courier New\">"+
+            "<font face=\"monospace\">"+
             "MR TC:........................................." + mr4 + "<br>" +
+            "Configured filename prefixes:.................." + formatIdRowCompact(mr13) + "<br>" +
             "Status:........................................" + mr10 + "<br>" +
             "Execution time (mm.ss):........................" + mr6 + "<br>" +
-            "Execution time from first poll (mm.ss):....... " + mr8 + "<br>" +
-            "Number of requests (polls):...................." + mr1 + "<br>" +
-            "Number of responses (polls):..................." + mr2 + "<br>" +
-            "Number of files in all responses:.............." + mr9 + "<br>" +
-            "Number of unique files in all responses:......." + mr3 + "<br>" +
-            "Number of events..............................." + mr5 + "<br>" +
-            "Number of unique PNFs.........................." + mr7 + "<br>" +
+            "Configured groups:............................." + formatIdRow(mr11) + "<br>" +
+            "Configured change identifiers:................." + formatIdRow(mr12) + "<br>" +
+            "Execution time from first poll (mm.ss):....... " + formatDataRow(mr8) + "<br>" +
+            "Number of requests (polls):...................." + formatDataRow(mr1) + "<br>" +
+            "Number of responses (polls):..................." + formatDataRow(mr2) + "<br>" +
+            "Number of files in all responses:.............." + formatDataRow(mr9) + "<br>" +
+            "Number of unique files in all responses:......." + formatDataRow(mr3) + "<br>" +
+            "Number of events..............................." + formatDataRow(mr5) + "<br>" +
+            "Number of unique PNFs.........................." + formatDataRow(mr7) + "<br>" +
             "</font>"+
             "<h3>DR Simulator</h3>" +
-            "<font face=\"Courier New\">"+
+            "<font face=\"monospace\">"+
             "DR TC:........................................." + dr8 + "<br>" +
             "Execution time (mm.ss):........................" + dr9 + "<br>" +
-            "Number of queries:............................." + dr1 + "<br>" +
-            "Number of query responses, file published:....." + dr2 + "<br>" +
-            "Number of query responses, file not published:." + dr3 + "<br>" +
-            "Number of requests:............................" + dr4 + "<br>" +
-            "Number of responses with redirect:............." + dr5 + "<br>" +
-            "Number of responses without redirect:.........." + dr6 + "<br>" +
-            "Number of published files:....................." + dr7 + "<br>" +
-            "Number of double published files:.............." + dr10 + "<br>" +
+            "Configured feeds (feedId:filePrefix)..........." + formatIdRow(dr11) +"<br>" +
+            "Number of queries:............................." + formatDataRow(dr1) + "<br>" +
+            "Number of queries with bad file name prefix:..." + formatDataRow(dr12) + "<br>" +
+            "Number of query responses, file published:....." + formatDataRow(dr2) + "<br>" +
+            "Number of query responses, file not published:." + formatDataRow(dr3) + "<br>" +
+            "Number of requests:............................" + formatDataRow(dr4) + "<br>" +
+            "Number of requests with bad file name prefix:.." + formatDataRow(dr13) + "<br>" +
+            "Number of responses with redirect:............." + formatDataRow(dr5) + "<br>" +
+            "Number of responses without redirect:.........." + formatDataRow(dr6) + "<br>" +
+            "Number of published files:....................." + formatDataRow(dr7) + "<br>" +
+            "Number of double published files:.............." + formatDataRow(dr10) + "<br>" +
             "</font>"+
             "<h3>DR Redirect Simulator</h3>" +
-            "<font face=\"Courier New\">"+
+            "<font face=\"monospace\">" +
             "DR REDIR TC:..................................." + drr3 + "<br>" +
             "Execution time (mm.ss):........................" + drr4 + "<br>" +
-            "Number of requests:............................" + drr1 + "<br>" +
-            "Number of responses:..........................." + drr2 + "<br>" +
-            "Downloaded volume (bytes):....................." + drr6 + "<br>" +
-            "Last publish (mm:ss):.........................." + drr5 + "<br>" +
+            "Publish speed (files/sec):....................." + drr9 + "<br>" +
+            "Configured feeds (feedId:filePrefix)..........." + formatIdRow(drr7) +"<br>" +
+            "Number of requests:............................" + formatDataRow(drr1) + "<br>" +
+            "Number of requests with bad file name prefix:.." + formatDataRow(drr8) + "<br>" +
+            "Number of responses:..........................." + formatDataRow(drr2) + "<br>" +
+            "Downloaded volume (bytes):....................." + formatDataRow(drr6) + "<br>" +
+            "Last publish (mm:ss):.........................." + formatDataRow(drr5) + "<br>" +
             "</font>"+
            "</body>" +
           "</html>";
 	res.send(str);
+
 })
 
 var httpServer = http.createServer(app);
 var httpPort=9999;
 httpServer.listen(httpPort);
-console.log("Simulator monitor listening (http) at "+httpPort);
\ No newline at end of file
+console.log("Simulator monitor listening (http) at "+httpPort);
+console.log("Open the web page on localhost:9999/mon to view the statistics page.")
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/simulators-kill.sh b/test/mocks/datafilecollector-testharness/simulator-group/simulators-kill.sh
index 3f0ba35..c0526e9 100755
--- a/test/mocks/datafilecollector-testharness/simulator-group/simulators-kill.sh
+++ b/test/mocks/datafilecollector-testharness/simulator-group/simulators-kill.sh
@@ -1,10 +1,39 @@
 #!/bin/bash
 
-#Stop all simulators
+#Script to kill and remove all simulators
 
+echo "Killing simulator containers"
 docker kill dfc_dr-sim
 docker kill dfc_dr-redir-sim
 docker kill dfc_mr-sim
-docker kill dfc_sftp-server
-docker kill dfc_ftpes-server-vsftpd
+docker kill dfc_sftp-server0
+docker kill dfc_sftp-server1
+docker kill dfc_sftp-server2
+docker kill dfc_sftp-server3
+docker kill dfc_sftp-server4
+docker kill dfc_ftpes-server-vsftpd0
+docker kill dfc_ftpes-server-vsftpd1
+docker kill dfc_ftpes-server-vsftpd2
+docker kill dfc_ftpes-server-vsftpd3
+docker kill dfc_ftpes-server-vsftpd4
+docker kill dfc_cbs
+docker kill dfc_consul
 
+echo "Removing simulator containers"
+docker rm dfc_dr-sim
+docker rm dfc_dr-redir-sim
+docker rm dfc_mr-sim
+docker rm dfc_sftp-server0
+docker rm dfc_sftp-server1
+docker rm dfc_sftp-server2
+docker rm dfc_sftp-server3
+docker rm dfc_sftp-server4
+docker rm dfc_ftpes-server-vsftpd0
+docker rm dfc_ftpes-server-vsftpd1
+docker rm dfc_ftpes-server-vsftpd2
+docker rm dfc_ftpes-server-vsftpd3
+docker rm dfc_ftpes-server-vsftpd4
+docker rm dfc_cbs
+docker rm dfc_consul
+
+echo "done"
\ No newline at end of file
diff --git a/test/mocks/datafilecollector-testharness/simulator-group/simulators-start.sh b/test/mocks/datafilecollector-testharness/simulator-group/simulators-start.sh
index 774b753..82ad6aa 100755
--- a/test/mocks/datafilecollector-testharness/simulator-group/simulators-start.sh
+++ b/test/mocks/datafilecollector-testharness/simulator-group/simulators-start.sh
@@ -1,35 +1,115 @@
 #!/bin/bash
 
+server_check() {
+	for i in {1..10}; do
+		res=$(curl  -s -o /dev/null -w "%{http_code}" localhost:$2$3)
+		if [ $res -gt 199 ] && [ $res -lt 300 ]; then
+			echo "Simulator " $1 " on localhost:$2$3 responded ok"
+			return
+		fi
+		sleep 1
+	done
+	echo "Simulator " $1 " on localhost:$2$3 - no response"
+}
+
+ftps_server_check() {
+	for i in {1..10}; do
+		res=$(curl --silent --max-time 3 localhost:$2 2>&1 | grep vsFTPd)
+		if ! [ -z "$res" ]; then
+			echo "Simulator " $1 " on localhost:$2 responded ok"
+			return
+		fi
+		sleep 1
+	done
+	echo "Simulator " $1 " on localhost:$2 - no response"
+}
+
+sftp_server_check() {
+	for i in {1..10}; do
+		res=$(curl --silent --max-time 3 localhost:$2 2>&1 | grep OpenSSH)
+		if ! [ -z "$res" ]; then
+			echo "Simulator " $1 " on localhost:"$2" responded ok"
+			return
+		fi
+		sleep 1
+	done
+	echo "Simulator " $1 " on localhost:"$2" - no response"
+}
 
 # Starts all simulators with the test settings
-# Intended for CSIT test. For manual start, use the docker-compose-setup.sh
+# Intended for CSIT test and auto test. For manual start, use the docker-compose-setup.sh
+
+DOCKER_SIM_NWNAME="dfcnet"
+echo "Creating docker network $DOCKER_SIM_NWNAME, if needed"
+docker network ls| grep $DOCKER_SIM_NWNAME > /dev/null || docker network create $DOCKER_SIM_NWNAME
 
 docker-compose -f docker-compose-template.yml config > docker-compose.yml
 
 docker-compose up -d
 
+declare -a SFTP_SIM
+declare -a FTPS_SIM
+
 DR_SIM="$(docker ps -q --filter='name=dfc_dr-sim')"
 DR_RD_SIM="$(docker ps -q --filter='name=dfc_dr-redir-sim')"
 MR_SIM="$(docker ps -q --filter='name=dfc_mr-sim')"
-SFTP_SIM="$(docker ps -q --filter='name=dfc_sftp-server')"
-FTPS_SIM="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd')"
+SFTP_SIM[0]="$(docker ps -q --filter='name=dfc_sftp-server0')"
+SFTP_SIM[1]="$(docker ps -q --filter='name=dfc_sftp-server1')"
+SFTP_SIM[2]="$(docker ps -q --filter='name=dfc_sftp-server2')"
+SFTP_SIM[3]="$(docker ps -q --filter='name=dfc_sftp-server3')"
+SFTP_SIM[4]="$(docker ps -q --filter='name=dfc_sftp-server4')"
+FTPS_SIM[0]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd0')"
+FTPS_SIM[1]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd1')"
+FTPS_SIM[2]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd2')"
+FTPS_SIM[3]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd3')"
+FTPS_SIM[4]="$(docker ps -q --filter='name=dfc_ftpes-server-vsftpd4')"
+CBS_SIM="$(docker ps -q --filter='name=dfc_cbs')"
+CONSUL_SIM="$(docker ps -q --filter='name=dfc_consul')"
 
 #Wait for initialization of docker containers for all simulators
 for i in {1..10}; do
 if [ $(docker inspect --format '{{ .State.Running }}' $DR_SIM) ] && \
 [ $(docker inspect --format '{{ .State.Running }}' $DR_RD_SIM) ] && \
 [ $(docker inspect --format '{{ .State.Running }}' $MR_SIM) ] && \
-[ $(docker inspect --format '{{ .State.Running }}' $SFTP_SIM) ] && \
-[ $(docker inspect --format '{{ .State.Running }}' $FTPS_SIM) ]
+[ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[0]}) ] && \
+[ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[1]}) ] && \
+[ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[2]}) ] && \
+[ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[3]}) ] && \
+[ $(docker inspect --format '{{ .State.Running }}' ${SFTP_SIM[4]}) ] && \
+[ $(docker inspect --format '{{ .State.Running }}' ${FTPS_SIM[0]}) ] && \
+[ $(docker inspect --format '{{ .State.Running }}' ${FTPS_SIM[1]}) ] && \
+[ $(docker inspect --format '{{ .State.Running }}' ${FTPS_SIM[2]}) ] && \
+[ $(docker inspect --format '{{ .State.Running }}' ${FTPS_SIM[3]}) ] && \
+[ $(docker inspect --format '{{ .State.Running }}' ${FTPS_SIM[4]}) ] && \
+[ $(docker inspect --format '{{ .State.Running }}' $CBS_SIM) ] && \
+[ $(docker inspect --format '{{ .State.Running }}' $CONSUL_SIM) ]
  then
-   echo "All simulators Running"
+   echo "All simulators Started"
    break
  else
    echo sleep $i
    sleep $i
- fi 
+ fi
 done
 
+server_check      "cbs          " 10000 "/healthcheck"
+server_check      "consul       " 8500 "/v1/catalog/service/agent"
+server_check      "DR sim       " 3906 "/"
+server_check      "DR redir sim " 3908 "/"
+server_check      "MR sim       " 2222 "/"
+ftps_server_check "FTPS server 0" 1032
+ftps_server_check "FTPS server 1" 1033
+ftps_server_check "FTPS server 2" 1034
+ftps_server_check "FTPS server 3" 1035
+ftps_server_check "FTPS server 4" 1036
+sftp_server_check "SFTP server 0" 1022
+sftp_server_check "SFTP server 1" 1023
+sftp_server_check "SFTP server 2" 1024
+sftp_server_check "SFTP server 3" 1025
+sftp_server_check "SFTP server 4" 1026
+
+echo ""
+
 #Populate the ftp server with files
 if [ -z "$NUM_FTPFILES" ]
  then
@@ -47,17 +127,35 @@
  then
  FTP_TYPE="ALL"
 fi
+if [ -z "$FTP_FILE_PREFIXES" ]
+ then
+ FTP_FILE_PREFIXES="A"
+fi
+
+if [ -z "$NUM_FTP_SERVERS" ]
+ then
+ NUM_FTP_SERVERS=1
+fi
+
 
 if [ $FTP_TYPE = "ALL" ] || [ $FTP_TYPE = "SFTP" ]; then
 	echo "Creating files for SFTP server, may take time...."
-	docker cp setup-ftp-files-for-image.sh $SFTP_SIM:/tmp/
-	#Double slash needed for docker on win...
-	docker exec -w //home/onap/ $SFTP_SIM //tmp/setup-ftp-files-for-image.sh $NUM_FTPFILES $NUM_PNFS $FILE_SIZE #>/dev/null 2>&1
+	p=0
+	while [ $p -lt $NUM_FTP_SERVERS ]; do
+		docker cp setup-ftp-files-for-image.sh ${SFTP_SIM[$p]}:/tmp/
+		#Double slash needed for docker on win...
+		docker exec -w //home/onap/ ${SFTP_SIM[$p]} //tmp/setup-ftp-files-for-image.sh $NUM_FTPFILES $NUM_PNFS $FILE_SIZE $FTP_FILE_PREFIXES $NUM_FTP_SERVERS $p #>/dev/null 2>&1
+		let p=p+1
+	done
 fi
 if [ $FTP_TYPE = "ALL" ] || [ $FTP_TYPE = "FTPS" ]; then
 	echo "Creating files for FTPS server, may take time...."
-	docker cp setup-ftp-files-for-image.sh $FTPS_SIM:/tmp/setup-ftp-files-for-image.sh
-	#Double slash needed for docker on win...
-	docker exec -w //srv $FTPS_SIM //tmp/setup-ftp-files-for-image.sh $NUM_FTPFILES $NUM_PNFS $FILE_SIZE #>/dev/null 2>&1
+	p=0
+	while [ $p -lt $NUM_FTP_SERVERS ]; do
+		docker cp setup-ftp-files-for-image.sh ${FTPS_SIM[$p]}:/tmp/setup-ftp-files-for-image.sh
+		#Double slash needed for docker on win...
+		docker exec -w //srv ${FTPS_SIM[$p]} //tmp/setup-ftp-files-for-image.sh $NUM_FTPFILES $NUM_PNFS $FILE_SIZE $FTP_FILE_PREFIXES $NUM_FTP_SERVERS $p #>/dev/null 2>&1
+		let p=p+1
+	done
 fi
 echo "Done: All simulators started and configured"
