diff --git a/tests/tt-workflow/Voltha_TT_MulticastTests.robot b/tests/tt-workflow/Voltha_TT_MulticastTests.robot
index 12483d4..6ecf6ba 100644
--- a/tests/tt-workflow/Voltha_TT_MulticastTests.robot
+++ b/tests/tt-workflow/Voltha_TT_MulticastTests.robot
@@ -14,7 +14,7 @@
 # FIXME Can we use the same test against BBSim and Hardware?
 
 *** Settings ***
-Documentation     Test various functional end-to-end scenarios for TT workflow
+Documentation     Test various multicast scenarios with given input file for TT workflow
 Suite Setup       Setup Suite
 Test Setup        Setup
 Test Teardown     Teardown
@@ -49,6 +49,7 @@
 ${timeout}        60s
 ${of_id}          0
 ${logical_id}     0
+${multicast_test_duration}     60
 ${has_dataplane}    True
 ${teardown_device}    True
 ${scripts}        ../../scripts
@@ -87,7 +88,9 @@
     ${matched}    ${src_onu2}    ${dst_onu2}=    Get ONU details with Given Sn and Service and UNI    ${test_onu2_sn}    mcast
     ...    ${test_onu2_uni}
     Wait Until Keyword Succeeds    ${timeout}    15    TT 2 RG MCAST Test    ${src_onu1}    ${dst_onu1}
-    ...    ${channel_ip_1}    ${src_onu2}    ${dst_onu2}    ${channel_ip_1}
+    ...    ${channel_ip_1}    ${src_onu2}    ${dst_onu2}    ${channel_ip_1}    ${multicast_test_duration}
+    # The purpose of this sleep period is to ensure that all groups and flows are deleted from the OLT before the next test.
+    Sleep    ${multicast_test_duration}
 
 2 RG Same ONU Different Channel Multicast Test
     [Documentation]    Verify that 2 RG which are connected to the same ONU could join the different channel.
@@ -108,7 +111,56 @@
     ${matched}    ${src_onu2}    ${dst_onu2}=    Get ONU details with Given Sn and Service and UNI    ${test_onu2_sn}    mcast
     ...    ${test_onu2_uni}
     Wait Until Keyword Succeeds    ${timeout}    15    TT 2 RG MCAST Test    ${src_onu1}    ${dst_onu1}
-    ...    ${channel_ip_1}    ${src_onu2}    ${dst_onu2}    ${channel_ip_2}
+    ...    ${channel_ip_1}    ${src_onu2}    ${dst_onu2}    ${channel_ip_2}    ${multicast_test_duration}
+    # The purpose of this sleep period is to ensure that all groups and flows are deleted from the OLT before the next test.
+    Sleep    ${multicast_test_duration}
+
+2 RG Same PON Different ONU Same Channel Multicast Test
+    [Documentation]    Verify that 2 RG which are connected to the different ONUs
+    ...    on the same PON Ports could join the same channel.
+    [Tags]    functionalTT    2RGSamePonDifferentOnuSameChannel    multicastTT
+    [Setup]    Start Logging    2RGSamePonDifferentOnuSameChannel
+    [Teardown]    Run Keywords    Collect Logs
+    ...           AND             Stop Logging    2RGSamePonDifferentOnuSameChannel
+    ${test_onus_pon0}=    Set Variable    ${multicast_test_onu_pon_locations.pon_0[0]}
+    ${test_onu1_sn}=    Set Variable    ${test_onus_pon0['onu_1']}
+    ${test_onu1_uni}=    Set Variable    1
+    ${test_onu2_sn}=    Set Variable    ${test_onus_pon0['onu_2']}
+    ${test_onu2_uni}=    Set Variable    1
+    ${channel_ip_list}=    Set Variable    ${multicast_ip_addresses[0]}
+    ${channel_ip_1}=    Set Variable    ${channel_ip_list['channel_1']}
+    ${matched}    ${src_onu1}    ${dst_onu1}=    Get ONU details with Given Sn and Service and UNI    ${test_onu1_sn}    mcast
+    ...    ${test_onu1_uni}
+    ${matched}    ${src_onu2}    ${dst_onu2}=    Get ONU details with Given Sn and Service and UNI    ${test_onu2_sn}    mcast
+    ...    ${test_onu2_uni}
+    Wait Until Keyword Succeeds    ${timeout}    15    TT 2 RG MCAST Test    ${src_onu1}    ${dst_onu1}
+    ...    ${channel_ip_1}    ${src_onu2}    ${dst_onu2}    ${channel_ip_1}    ${multicast_test_duration}
+    # The purpose of this sleep period is to ensure that all groups and flows are deleted from the OLT before the next test.
+    Sleep    ${multicast_test_duration}
+
+2 RG Same PON Different ONU Different Channels Multicast Test
+    [Documentation]    Verify that 2 RG which are connected to the different ONUs
+    ...    on the same PON Ports could join the different channels.
+    [Tags]    functionalTT    2RGSamePonDifferentOnuDifferentChannel    multicastTT
+    [Setup]    Start Logging    2RGSamePonDifferentOnuDifferentChannel
+    [Teardown]    Run Keywords    Collect Logs
+    ...           AND             Stop Logging    2RGSamePonDifferentOnuDifferentChannel
+    ${test_onus_pon0}=    Set Variable    ${multicast_test_onu_pon_locations.pon_0[0]}
+    ${test_onu1_sn}=    Set Variable    ${test_onus_pon0['onu_1']}
+    ${test_onu1_uni}=    Set Variable    1
+    ${test_onu2_sn}=    Set Variable    ${test_onus_pon0['onu_2']}
+    ${test_onu2_uni}=    Set Variable    1
+    ${channel_ip_list}=    Set Variable    ${multicast_ip_addresses[0]}
+    ${channel_ip_1}=    Set Variable    ${channel_ip_list['channel_1']}
+    ${channel_ip_2}=    Set Variable    ${channel_ip_list['channel_2']}
+    ${matched}    ${src_onu1}    ${dst_onu1}=    Get ONU details with Given Sn and Service and UNI    ${test_onu1_sn}    mcast
+    ...    ${test_onu1_uni}
+    ${matched}    ${src_onu2}    ${dst_onu2}=    Get ONU details with Given Sn and Service and UNI    ${test_onu2_sn}    mcast
+    ...    ${test_onu2_uni}
+    Wait Until Keyword Succeeds    ${timeout}    15    TT 2 RG MCAST Test    ${src_onu1}    ${dst_onu1}
+    ...    ${channel_ip_1}    ${src_onu2}    ${dst_onu2}    ${channel_ip_2}    ${multicast_test_duration}
+    # The purpose of this sleep period is to ensure that all groups and flows are deleted from the OLT before the next test.
+    Sleep    ${multicast_test_duration}
 
 2 RG Different PON Different ONU Same Channel Multicast Test
     [Documentation]    Verify that 2 RG which are connected to the different ONUs
@@ -130,7 +182,9 @@
     ${matched}    ${src_onu2}    ${dst_onu2}=    Get ONU details with Given Sn and Service and UNI    ${test_onu2_sn}    mcast
     ...    ${test_onu2_uni}
     Wait Until Keyword Succeeds    ${timeout}    15    TT 2 RG MCAST Test    ${src_onu1}    ${dst_onu1}
-    ...    ${channel_ip_1}    ${src_onu2}    ${dst_onu2}    ${channel_ip_1}
+    ...    ${channel_ip_1}    ${src_onu2}    ${dst_onu2}    ${channel_ip_1}    ${multicast_test_duration}
+    # The purpose of this sleep period is to ensure that all groups and flows are deleted from the OLT before the next test.
+    Sleep    ${multicast_test_duration}
 
 2 RG Different PON Different ONU Different Channels Multicast Test
     [Documentation]    Verify that 2 RG which are connected to the different ONUs
@@ -153,7 +207,7 @@
     ${matched}    ${src_onu2}    ${dst_onu2}=    Get ONU details with Given Sn and Service and UNI    ${test_onu2_sn}    mcast
     ...    ${test_onu2_uni}
     Wait Until Keyword Succeeds    ${timeout}    15    TT 2 RG MCAST Test    ${src_onu1}    ${dst_onu1}
-    ...    ${channel_ip_1}    ${src_onu2}    ${dst_onu2}    ${channel_ip_2}
+    ...    ${channel_ip_1}    ${src_onu2}    ${dst_onu2}    ${channel_ip_2}    ${multicast_test_duration}
 
 *** Keywords ***
 Get ONU details with Given Sn and Service and UNI
@@ -177,8 +231,13 @@
 
 
 TT 2 RG MCAST Test
-    [Documentation]    This keyword performs MCAST two RG at the Same Time for TT workflow
+    [Documentation]    This keyword performs MCAST two RG at the Same Time for TT workflow.
+    ...    RG1 and RG2 could be join same channel or different channel.
+    ...    It will run multicast test with given multicast_test_duration variable.
+    ...    RG2 will leave channel after multicast_test_duration/2 seconds.
+    ...    Function verify that RG1's multicast stream is not affected.
     [Arguments]    ${src_rg1}    ${dst_rg1}    ${channel_ip_rg1}    ${src_rg2}    ${dst_rg2}    ${channel_ip_rg2}
+    ...    ${multicast_test_duration}
     # Check for iperf and jq tools RG1
     ${stdout}    ${stderr}    ${rc}=    Execute Remote Command    which iperf jq
     ...    ${src_rg1['ip']}    ${src_rg1['user']}    ${src_rg1['pass']}    ${src_rg1['container_type']}
@@ -233,67 +292,105 @@
 
     # Setup iperf on the BNG
     ${server_output}=    Run Keyword If    '${channel_ip_rg1}'=='${channel_ip_rg2}'
-    ...    Login And Run Command On Remote System    sudo iperf -c '${channel_ip_rg1}' -u -T 32 -t 60 -i 1 &
+    ...    Login And Run Command On Remote System
+    ...    sudo iperf -c '${channel_ip_rg1}' -u -T 32 -t ${multicast_test_duration} -i 1 &
     ...    ${dst_rg1['bng_ip']}    ${dst_rg1['bng_user']}    ${dst_rg1['bng_pass']}    ${dst_rg1['container_type']}
     ...    ${dst_rg1['container_name']}
     ...    ELSE    Run Keywords    Run Keyword And Continue On Failure
-    ...    Login And Run Command On Remote System    sudo iperf -c '${channel_ip_rg1}' -u -T 32 -t 60 -i 1 &
+    ...    Login And Run Command On Remote System
+    ...    sudo iperf -c '${channel_ip_rg1}' -u -T 32 -t ${multicast_test_duration} -i 1 &
     ...    ${dst_rg1['bng_ip']}    ${dst_rg1['bng_user']}    ${dst_rg1['bng_pass']}    ${dst_rg1['container_type']}
     ...    ${dst_rg1['container_name']}     AND    Run Keyword And Continue On Failure
-    ...    Login And Run Command On Remote System    sudo iperf -c '${channel_ip_rg2}' -u -T 32 -t 60 -i 1 &
+    ...    Login And Run Command On Remote System
+    ...    sudo iperf -c '${channel_ip_rg2}' -u -T 32 -t ${multicast_test_duration} -i 1 &
     ...    ${dst_rg2['bng_ip']}    ${dst_rg2['bng_user']}    ${dst_rg2['bng_pass']}    ${dst_rg2['container_type']}
     ...    ${dst_rg2['container_name']}
 
     # Setup iperf on the RG1
-    ${rg_output_rg1}=    Run Keyword and Continue On Failure    Wait Until Keyword Succeeds     90s    5s
+    ${rg_output_rg1}=    Run Keyword and Continue On Failure    Wait Until Keyword Succeeds     ${timeout}    5s
     ...    Login And Run Command On Remote System
-    ...    rm -rf /tmp/rg_output ; sudo iperf -s -u -B '${channel_ip_rg1}' -i 1 -D >> /tmp/rg_output
+    ...    rm -rf /tmp/rg1_output ; date >> /tmp/rg1_output ; sudo iperf -s -u -B '${channel_ip_rg1}' -i 1 -D >> /tmp/rg1_output
     ...    ${src_rg1['ip']}    ${src_rg1['user']}    ${src_rg1['pass']}    ${src_rg1['container_type']}
     ...    ${src_rg1['container_name']}
 
     # Setup iperf on the RG2
-    ${rg_output_rg2}=    Run Keyword and Continue On Failure    Wait Until Keyword Succeeds     90s    5s
+    ${rg_output_rg2}=    Run Keyword and Continue On Failure    Wait Until Keyword Succeeds     ${timeout}    5s
     ...    Login And Run Command On Remote System
-    ...    rm -rf /tmp/rg_output ; sudo iperf -s -u -B '${channel_ip_rg2}' -i 1 -D >> /tmp/rg_output
+    ...    rm -rf /tmp/rg2_output ; date >> /tmp/rg2_output ; sudo iperf -s -u -B '${channel_ip_rg2}' -i 1 -D >> /tmp/rg2_output
     ...    ${src_rg2['ip']}    ${src_rg2['user']}    ${src_rg2['pass']}    ${src_rg2['container_type']}
     ...    ${src_rg2['container_name']}
 
     #Logging Outputs and Check iperf UDP Stream Outputs
     Log    ${rg_output_rg1}
     Log    ${rg_output_rg2}
-    Sleep    60s
-    ${output}=    Run Keyword and Continue On Failure     Wait Until Keyword Succeeds     90s    5s
+    ${igmp_leave_time}=     Evaluate    ${multicast_test_duration}/2
+    ${s}=    Set Variable   s
+    ${sleep_time}=    Set Variable   ${igmp_leave_time}${s}
+    Sleep    ${sleep_time}
+    ${onos_delay_tolerance}=    Set Variable   5
+    ${igmp_leave_time_with_delay}=     Evaluate    ${igmp_leave_time} + ${onos_delay_tolerance}
+
+    # Kill iperf on the RG2
+    ${rg_kill_output_rg2}=    Run Keyword and Continue On Failure    Login And Run Command On Remote System
+    ...    sudo kill -9 `pidof iperf` ; date >> /tmp/rg2_output    ${src_rg2['ip']}    ${src_rg2['user']}
+    ...    ${src_rg2['pass']}    ${src_rg2['container_type']}    ${src_rg2['container_name']}
+
+    Sleep    ${sleep_time}
+
+    # Kill iperf on the RG1
+    ${output}=    Run Keyword and Continue On Failure    Login And Run Command On Remote System
+    ...    sudo kill -9 `pidof iperf` ; date >> /tmp/rg1_output    ${src_rg1['ip']}    ${src_rg1['user']}
+    ...    ${src_rg1['pass']}    ${src_rg1['container_type']}    ${src_rg1['container_name']}
+
+    ${output_rg1}=    Run Keyword and Continue On Failure     Wait Until Keyword Succeeds     ${timeout}    5s
     ...    Login And Run Command On Remote System
-    ...    cat /tmp/rg_output | grep KBytes
+    ...    cat /tmp/rg1_output | grep KBytes
     ...    ${src_rg1['ip']}    ${src_rg1['user']}    ${src_rg1['pass']}    ${src_rg1['container_type']}
     ...    ${src_rg1['container_name']}
-    Log    ${output}
-    Should Contain    ${output}    KBytes
-    ${output}=    Run Keyword and Continue On Failure     Wait Until Keyword Succeeds     90s    5s
+    Log    ${output_rg1}
+    # Check that RG1's stream count
+    ${output_rg1_count}=    Get Line Count    ${output_rg1}
+    ${output_rg1_count}=    Evaluate    ${output_rg1_count}-1
+    ${output_rg1_file}=    Run Keyword and Continue On Failure     Wait Until Keyword Succeeds     ${timeout}    5s
     ...    Login And Run Command On Remote System
-    ...    cat /tmp/rg_output | grep KBytes
+    ...    cat /tmp/rg1_output
+    ...    ${src_rg1['ip']}    ${src_rg1['user']}    ${src_rg1['pass']}    ${src_rg1['container_type']}
+    ...    ${src_rg1['container_name']}
+    Log    ${output_rg1_file}
+
+
+    ${output_rg2}=    Run Keyword and Continue On Failure     Wait Until Keyword Succeeds     ${timeout}    5s
+    ...    Login And Run Command On Remote System
+    ...    cat /tmp/rg2_output | grep KBytes
     ...    ${src_rg2['ip']}    ${src_rg2['user']}    ${src_rg2['pass']}    ${src_rg2['container_type']}
     ...    ${src_rg2['container_name']}
-    Log    ${output}
-    Should Contain    ${output}    KBytes
+    Log    ${output_rg2}
+    # Check that RG2's stream count
+    ${output_rg2_count}=    Get Line Count      ${output_rg2}
+    ${output_rg2_count}=    Evaluate    ${output_rg2_count}-1
+    ${output_rg2_file}=    Run Keyword and Continue On Failure     Wait Until Keyword Succeeds     ${timeout}    5s
+    ...    Login And Run Command On Remote System
+    ...    cat /tmp/rg2_output
+    ...    ${src_rg2['ip']}    ${src_rg2['user']}    ${src_rg2['pass']}    ${src_rg2['container_type']}
+    ...    ${src_rg2['container_name']}
+    Log    ${output_rg2_file}
 
     # Kill iperf  on BNG
-    ${rg_output}=    Run Keyword and Continue On Failure    Login And Run Command On Remote System
+    ${server_output}=    Run Keyword and Continue On Failure    Login And Run Command On Remote System
     ...    sudo kill -9 `pidof iperf`
     ...    ${dst_rg1['bng_ip']}    ${dst_rg1['bng_user']}    ${dst_rg1['bng_pass']}    ${dst_rg1['container_type']}
     ...    ${dst_rg1['container_name']}
 
-    # Kill iperf on the RG1
-    ${output}=    Run Keyword and Continue On Failure    Login And Run Command On Remote System
-    ...    sudo kill -9 `pidof iperf`
-    ...    ${src_rg1['ip']}    ${src_rg1['user']}    ${src_rg1['pass']}    ${src_rg1['container_type']}
-    ...    ${src_rg1['container_name']}
 
-    # Kill iperf on the RG2
-    ${output}=    Run Keyword and Continue On Failure    Login And Run Command On Remote System
-    ...    sudo kill -9 `pidof iperf`
-    ...    ${src_rg2['ip']}    ${src_rg2['user']}    ${src_rg2['pass']}    ${src_rg2['container_type']}
-    ...    ${src_rg2['container_name']}
+    Should Contain    ${output_rg1}    KBytes
+    Should Contain    ${output_rg2}    KBytes
+    # Verify that RG1's stream count is lower than multicast total test duration
+    Should Be Lower Than    ${output_rg1_count}    ${multicast_test_duration}
+    # Verify that RG1's stream count is larger than multicast igmp leave time
+    Should Be Larger Than    ${output_rg1_count}    ${igmp_leave_time_with_delay}
+    # Verify that RG2's stream count is lower than multicast igmp leave time
+    Should Be Lower Than    ${output_rg2_count}    ${igmp_leave_time_with_delay}
+
 
 Setup Suite
     [Documentation]    Set up the test suite
