diff --git a/Makefile b/Makefile
index b90fdfe..5ab699c 100755
--- a/Makefile
+++ b/Makefile
@@ -21,7 +21,7 @@
 # Configuration and lists of files for linting/testing
 VERSION   ?= $(shell cat ./VERSION)
 LINT_ARGS ?= --verbose --configure LineTooLong:130 -e LineTooLong \
-             --configure TooManyTestSteps:50 -e TooManyTestSteps \
+             --configure TooManyTestSteps:60 -e TooManyTestSteps \
              --configure TooManyTestCases:50 -e TooManyTestCases \
              --configure TooFewTestSteps:1 \
              --configure TooFewKeywordSteps:1 \
diff --git a/libraries/utils.robot b/libraries/utils.robot
index 3a4f6f2..359ed4a 100755
--- a/libraries/utils.robot
+++ b/libraries/utils.robot
@@ -40,7 +40,7 @@
 Send File To Onos
     [Documentation]    Send the content of the file to Onos to selected section of configuration
     ...   using Post Request
-    [Arguments]    ${CONFIG_FILE}    ${section}
+    [Arguments]    ${CONFIG_FILE}    ${section}=${EMPTY}
     ${Headers}=    Create Dictionary    Content-Type    application/json
     ${File_Data}=    OperatingSystem.Get File    ${CONFIG_FILE}
     Log    ${Headers}
diff --git a/tests/data/flex-ocp-cord-TT-multi-tcont-tests-input.yaml b/tests/data/flex-ocp-cord-TT-multi-tcont-tests-input.yaml
index dc2ab1e..08aa74d 100644
--- a/tests/data/flex-ocp-cord-TT-multi-tcont-tests-input.yaml
+++ b/tests/data/flex-ocp-cord-TT-multi-tcont-tests-input.yaml
@@ -25,10 +25,10 @@
   tcont1tcont4:
     -
       onu: 'ALPHe3d1cea3'
-      service_type: 'voip'
-      us_bw_profile: 'TCONT_TYPE1_200Mbps_Fixed_ForVOIP'
+      service_type: 'hsia'
+      us_bw_profile: 'TCONT_TYPE4_1Gbps_Peak_User1_HSI_Upstream'
     -
-      onu: 'ALPHe3d1cea3'
+      onu: 'ALPHe3d1ceb7'
       service_type: 'hsia'
       us_bw_profile: 'TCONT_TYPE4_1Gbps_Peak_User1_HSI_Upstream'
   tcont2tcont4:
@@ -60,3 +60,11 @@
 # yamllint disable
       us_bw_profile: 'TCONT_TYPE5_1Gbps_Peak_500Mbps_Assured_200Mbps_Fixed_User1_HSI_Upstream'
 # yamllint enable
+
+# Fixed Bandwidth Profile ONUs required to fill OLT PON Bandwidth
+onus_fill_pon_bw:
+  -
+    serial: 'ALPHe3d1cfa7'
+    olt: 'EC1838000853'
+    service_type: 'voip'
+    us_bw_profile: 'TCONT_TYPE1_Fixed8.7Gbps'
diff --git a/tests/data/flex-ocp-cord-sadis-TT-multi-tcont.json b/tests/data/flex-ocp-cord-sadis-TT-multi-tcont.json
new file mode 100644
index 0000000..bf3ea79
--- /dev/null
+++ b/tests/data/flex-ocp-cord-sadis-TT-multi-tcont.json
@@ -0,0 +1,273 @@
+{
+  "ports" : { },
+  "devices" : { },
+  "hosts" : { },
+  "apps" : {
+    "org.onosproject.provider.lldp" : {
+      "suppression" : {
+        "deviceTypes" : [ "ROADM", "OTN", "FIBER_SWITCH", "OPTICAL_AMPLIFIER" ],
+        "annotation" : "{\"no-lldp\":null}"
+      }
+    },
+    "org.opencord.kafka" : { },
+    "org.onosproject.core" : {
+      "multicast" : {
+        "ingressVlan" : 550,
+        "egressVlan" : 550,
+        "egressInnerVlan" : 55
+      }
+    },
+    "org.opencord.sadis" : {
+      "bandwidthprofile" : {
+        "integration" : {
+          "cache" : {
+            "enabled" : true,
+            "maxsize" : 40,
+            "ttl" : "PT1m"
+          }
+        },
+        "entries" : [ {
+          "id" : "High-Speed-Internet",
+          "cir" : 100000,
+          "cbs" : 10000,
+          "eir" : 100000,
+          "ebs" : 10000,
+          "air" : 100000
+        }, {
+          "id" : "VOIP",
+          "cir" : 400000,
+          "cbs" : 10000,
+          "eir" : 400000,
+          "ebs" : 10000,
+          "air" : 100000
+        }, {
+          "id" : "User1-Specific",
+          "cir" : 60000,
+          "cbs" : 10000,
+          "eir" : 40000,
+          "ebs" : 10000
+        }, {
+          "id" : "User1-Specific2",
+          "cir" : 500000,
+          "cbs" : 10000,
+          "eir" : 300000,
+          "ebs" : 10000
+        }, {
+          "id" : "TCONT_TYPE1_Fixed8.7Gbps",
+          "cir" : 0,
+          "cbs" : 0,
+          "eir" : 0,
+          "ebs" : 0,
+          "air" : 8700000
+        }, {
+          "id" : "TCONT_TYPE1_200Mbps_Fixed_ForVOIP",
+          "eir" : 0,
+          "ebs" : 0,
+          "cir" : 0,
+          "cbs" : 0,
+          "air" : 200000
+        }, {
+          "id" : "TCONT_TYPE1_1Mbps_Fixed",
+          "eir" : 0,
+          "ebs" : 0,
+          "cir" : 0,
+          "cbs" : 0,
+          "air" : 1000
+        }, {
+          "id" : "TCONT_TYPE2_500Mbps_Assured_ForVoD",
+          "eir" : 0,
+          "ebs" : 0,
+          "cir" : 500000,
+          "cbs" : 10000,
+          "air" : 0
+        }, {
+          "id" : "TCONT_TYPE3_700Mbps_Peak_500Mbps_Assured_ForVoD",
+          "eir" : 200000,
+          "ebs" : 10000,
+          "cir" : 500000,
+          "cbs" : 10000,
+          "air" : 0
+        }, {
+          "id" : "TCONT_TYPE4_1Gbps_Peak_User1_HSI_Upstream",
+          "eir" : 1000000,
+          "ebs" : 10000,
+          "cir" : 0,
+          "cbs" : 0,
+          "air" : 0
+        }, {
+          "id" : "TCONT_TYPE5_1Gbps_Peak_500Mbps_Assured_200Mbps_Fixed_User1_HSI_Upstream",
+          "eir" : 300000,
+          "ebs" : 10000,
+          "cir" : 500000,
+          "cbs" : 10000,
+          "air" : 200000
+        } ]
+      },
+      "sadis" : {
+        "integration" : {
+          "cache" : {
+            "enabled" : true,
+            "maxsize" : 50,
+            "ttl" : "PT1m"
+          }
+        },
+        "entries" : [ {
+          "id" : "ALPHe3d1cfa7-1",
+          "nasPortId" : "ALPHe3d1cfa7-1",
+          "circuitId" : "ALPHe3d1cfa7-1",
+          "remoteId" : "ALPHe3d1cfa7-1",
+          "uniTagList" : [ {
+            "uniTagMatch" : 65,
+            "ponCTag" : 444,
+            "ponSTag" : 333,
+            "usPonCTagPriority" : 7,
+            "usPonSTagPriority" : 7,
+            "dsPonCTagPriority" : 7,
+            "dsPonSTagPriority" : 7,
+            "technologyProfileId" : 65,
+            "downstreamBandwidthProfile" : "VOIP",
+            "upstreamBandwidthProfile" : "TCONT_TYPE1_Fixed8.7Gbps",
+            "isDhcpRequired" : "true",
+            "configuredMacAddress" : "00:50:56:8a:fd:77",
+            "serviceName" : "VOIP"
+          } ]
+        }, {
+          "id" : "ALPHe3d1cea3-1",
+          "nasPortId" : "ALPHe3d1cea3-1",
+          "uniTagList" : [ {
+            "uniTagMatch" : 35,
+            "ponCTag" : 801,
+            "ponSTag" : 111,
+            "usPonCTagPriority" : 0,
+            "usPonSTagPriority" : 0,
+            "dsPonCTagPriority" : 0,
+            "dsPonSTagPriority" : 0,
+            "technologyProfileId" : 64,
+            "downstreamBandwidthProfile" : "High-Speed-Internet",
+            "upstreamBandwidthProfile" : "TCONT_TYPE4_1Gbps_Peak_User1_HSI_Upstream",
+            "isDhcpRequired" : "true",
+            "serviceName" : "HSIA"
+          }, {
+            "uniTagMatch" : 65,
+            "ponCTag" : 444,
+            "ponSTag" : 333,
+            "usPonCTagPriority" : 7,
+            "usPonSTagPriority" : 7,
+            "dsPonCTagPriority" : 7,
+            "dsPonSTagPriority" : 7,
+            "technologyProfileId" : 65,
+            "downstreamBandwidthProfile" : "VOIP",
+            "upstreamBandwidthProfile" : "TCONT_TYPE1_1Mbps_Fixed",
+            "isDhcpRequired" : "true",
+            "configuredMacAddress" : "2c:60:0c:ee:d6:27",
+            "serviceName" : "VOIP"
+          }, {
+            "uniTagMatch" : 55,
+            "ponCTag" : 55,
+            "ponSTag" : 555,
+            "usPonCTagPriority" : 5,
+            "usPonSTagPriority" : 5,
+            "dsPonCTagPriority" : 5,
+            "dsPonSTagPriority" : 5,
+            "technologyProfileId" : 66,
+            "downstreamBandwidthProfile" : "High-Speed-Internet",
+            "upstreamBandwidthProfile" : "TCONT_TYPE2_500Mbps_Assured_ForVoD",
+            "configuredMacAddress" : "2c:60:0c:ee:d6:27",
+            "serviceName" : "VOD",
+            "isDhcpRequired" : "true",
+            "isIgmpRequired" : "true"
+          }, {
+            "ponCTag" : 55,
+            "ponSTag" : 550,
+            "dsPonCTagPriority" : 5,
+            "dsPonSTagPriority" : 5,
+            "technologyProfileId" : 66,
+            "serviceName" : "MC"
+          } ]
+        }, {
+          "id" : "ALPHe3d1ceb7-1",
+          "nasPortId" : "ALPHe3d1ceb7-1",
+          "uniTagList" : [ {
+            "uniTagMatch" : 35,
+            "ponCTag" : 101,
+            "ponSTag" : 222,
+            "usPonCTagPriority" : 0,
+            "usPonSTagPriority" : 0,
+            "dsPonCTagPriority" : 0,
+            "dsPonSTagPriority" : 0,
+            "technologyProfileId" : 64,
+            "downstreamBandwidthProfile" : "High-Speed-Internet",
+            "upstreamBandwidthProfile" : "TCONT_TYPE4_1Gbps_Peak_User1_HSI_Upstream",
+            "isDhcpRequired" : "true",
+            "serviceName" : "HSIA"
+          }, {
+            "uniTagMatch" : 65,
+            "ponCTag" : 444,
+            "ponSTag" : 333,
+            "usPonCTagPriority" : 7,
+            "usPonSTagPriority" : 7,
+            "dsPonCTagPriority" : 7,
+            "dsPonSTagPriority" : 7,
+            "technologyProfileId" : 65,
+            "downstreamBandwidthProfile" : "VOIP",
+            "upstreamBandwidthProfile" : "TCONT_TYPE1_1Mbps_Fixed",
+            "isDhcpRequired" : "true",
+            "configuredMacAddress" : "2c:60:0c:ee:d7:68",
+            "serviceName" : "VOIP"
+          }, {
+            "uniTagMatch" : 55,
+            "ponCTag" : 55,
+            "ponSTag" : 555,
+            "usPonCTagPriority" : 5,
+            "usPonSTagPriority" : 5,
+            "dsPonCTagPriority" : 5,
+            "dsPonSTagPriority" : 5,
+            "technologyProfileId" : 67,
+            "downstreamBandwidthProfile" : "High-Speed-Internet",
+            "upstreamBandwidthProfile" : "TCONT_TYPE3_700Mbps_Peak_500Mbps_Assured_ForVoD",
+            "configuredMacAddress" : "2c:60:0c:ee:d7:68",
+            "serviceName" : "VOD",
+            "isDhcpRequired" : "true",
+            "isIgmpRequired" : "true"
+          }, {
+            "ponCTag" : 55,
+            "ponSTag" : 550,
+            "dsPonCTagPriority" : 5,
+            "dsPonSTagPriority" : 5,
+            "technologyProfileId" : 67,
+            "serviceName" : "MC"
+          } ]
+        }, {
+          "id" : "EC1838000853",
+          "hardwareIdentifier" : "00:00:00:00:00:01",
+          "ipAddress" : "10.192.20.206",
+          "uplinkPort" : "1048576"
+        } ]
+      }
+    },
+    "org.opencord.igmpproxy" : {
+        "igmpproxy":{
+           "FastLeave":"true",
+           "LastQueryInterval":1,
+           "MaxResp":1,
+           "enableIgmpProvisioning":"false",
+           "globalConnectPointMode":"true",
+           "globalConnectPoint" : "of:0000000000000001/3",
+           "sourceDeviceAndPort":"of:0000000000000001/3",
+           "outgoingIgmpVlanId":550,
+           "outgoingIgmpInnerVlanId":55,
+           "outgoingIgmpWithV3":"true",
+           "IgmpCos":5,
+           "IgmpUniCos":5,
+           "PeriodicQuery":"true",
+           "KeepAliveInterval":60,
+           "KeepAliveCount":5,
+           "requestDsIgmpPackets":false
+        }
+    }
+  },
+  "regions" : { },
+  "links" : { },
+  "layouts" : { }
+}
+
diff --git a/tests/tt-workflow/Voltha_TT_MultiTcontTests.robot b/tests/tt-workflow/Voltha_TT_MultiTcontTests.robot
index 009bc65..6d5cdcd 100755
--- a/tests/tt-workflow/Voltha_TT_MultiTcontTests.robot
+++ b/tests/tt-workflow/Voltha_TT_MultiTcontTests.robot
@@ -57,6 +57,7 @@
 
 # For dataplane bandwidth testing
 ${lower_margin_pct}      90      # Allow 10% under the limit
+${pon_max_bw_capacity_xgs}=    9700000      # Mbps, for xgs-pon OLT, when FEC Disabled
 
 *** Test Cases ***
 Test that the BW is limited to Limiting Bandwidth
@@ -167,7 +168,135 @@
     Should Be True    ${pct_limit_up_1} >= ${lower_margin_pct}
     ...    The upstream bandwidth guarantee was not met (${pct_limit_up_1}% of resv)
 
+Test that the AIR BW is reserved for a ONU
+    [Documentation]    Verify support for Tcont type 1 + type 4 at the same time.
+    ...    Verify that 8700Mbps is reserved in the upstream as AIR requirement for the VoIP service.
+    ...    Pump 1Gbpbs in the upstream from the RG for HSI service, respectively ONU2, ONU3 and verify that up to 1Gbps
+    ...    is received at the BNG.
+    ...    Then pump ONU2 and ONU3 HSIA combined. ONUs must be share rest of bw in PON Port. (Expect fixed tcont1)
+    ...    Note: Currently, only Flex Pod supports the deployment configuration required to test this scenario.
+    [Tags]    functionalTT    VOL-4094
+    [Setup]    Run Keywords    Start Logging    TcontType1Type4Onu1Onu2Onu3
+    ...        AND             Setup
+    [Teardown]    Run Keywords    Collect Logs
+    ...           AND             Stop Logging    TcontType1Type4Onu1Onu2Onu3
+    ...           AND             Delete All Devices and Verify
+    # Push multi-tcont sadis to ONOS
+    Send File To Onos    ${CURDIR}/../../tests/data/flex-ocp-cord-sadis-TT-multi-tcont.json
+    Run Keyword If    ${has_dataplane}    Clean Up Linux
+    Wait Until Keyword Succeeds    ${timeout}    2s    Perform Sanity Test TT
+
+    # The test expects the first entry in multi_tcont_tests.tcont1tcont4 input will be for service: voip and tcont: 1
+    # The test expects the second entry in multi_tcont_tests.tcont1tcont4 input will be for service: hsia and tcont: 4
+    ${list_onus_ut}=    Create List
+    ${num_multi_tcont_input}=    Get Length    ${multi_tcont_tests.tcont1tcont4}
+    FOR    ${I}    IN RANGE    0    ${num_multi_tcont_input}
+        ${onu}=    Set Variable    ${multi_tcont_tests.tcont1tcont4[${I}]}
+        ${onu_sn}=    Set Variable    ${onu['onu']}
+        ${service}=    Set Variable    ${onu['service_type']}
+        ${us_bw}=    Set Variable    ${onu['us_bw_profile']}
+        ${matched}    ${src}    ${dst}=    Get ONU details with Given Sn and Service    ${onu_sn}
+        ...    ${service}    ${us_bw}
+        Pass Execution If    '${matched}' != 'True'
+        ...    Skipping test: No ONU found with sn '${onu_sn}', service '${service}' and us_bw '${us_bw}'
+        # Check for iperf3 and jq tools
+        ${stdout}    ${stderr}    ${rc}=    Execute Remote Command    which iperf3 jq
+        ...    ${src['ip']}    ${src['user']}    ${src['pass']}    ${src['container_type']}    ${src['container_name']}
+        Pass Execution If    ${rc} != 0    Skipping test: iperf3 / jq not found on the RG
+        # Get Upstream BW Profile details
+        ${limiting_bw_us}=    Get Limiting Bandwidth Details    ${us_bw}
+        ${onu_ut}    Create Dictionary    src    ${src}    dst    ${dst}    limiting_bw_us    ${limiting_bw_us}
+        Append To List    ${list_onus_ut}    ${onu_ut}
+    END
+
+    # Fill the OLT PON Bandwidth with Fixed Bandwidth Profile ONU
+    ${onu_fill_pon_bw}=    Evaluate    ${onus_fill_pon_bw}[0].get("serial")
+    ${olt_fill_pon_bw}=    Evaluate    ${onus_fill_pon_bw}[0].get("olt")
+    ${us_bw_profile_fill_pon_bw}=    Evaluate    ${onus_fill_pon_bw}[0].get("us_bw_profile")
+    ${of_id}=    Wait Until Keyword Succeeds    ${timeout}    15s    Validate OLT Device in ONOS    ${olt_fill_pon_bw}
+    ${onu_port}=    Run Keyword And Continue On Failure    Wait Until Keyword Succeeds    ${timeout}    2s
+    ...    Get ONU Port in ONOS    ${onu_fill_pon_bw}    ${of_id}
+    Run Keyword And Continue On Failure    Wait Until Keyword Succeeds    ${timeout}    2
+    ...    Execute ONOS CLI Command    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}
+    ...    volt-add-subscriber-access ${of_id} ${onu_port}
+    Sleep    10s
+    ${limiting_bw_us_fill_pon_bw}=    Get Limiting Bandwidth Details    ${us_bw_profile_fill_pon_bw}
+
+    # Case 1: Verify both ONUs should be able to get 1Gbps separately when only HSIA service is available
+    ${dst}=    Set Variable    ${list_onus_ut}[0][dst]
+    ${updict}=    Run Iperf3 Test Client    ${list_onus_ut}[0][src]    server=${dst['dp_iface_ip_qinq']}
+    ...    args=-t 30 -p 5202
+    ${actual_upstream_bw_used}=    Evaluate    ${updict['end']['sum_received']['bits_per_second']}/1000
+    ${pct_limit_up}=    Evaluate
+    ...    100*${actual_upstream_bw_used}/${list_onus_ut}[0][limiting_bw_us]
+    Should Be True    ${pct_limit_up} >= ${lower_margin_pct}
+    ...    The upstream bandwidth guarantee was not met (${pct_limit_up}% of resv)
+
+    ${dst}=    Set Variable    ${list_onus_ut}[1][dst]
+    ${updict}=    Run Iperf3 Test Client    ${list_onus_ut}[1][src]    server=${dst['dp_iface_ip_qinq']}
+    ...    args=-t 30 -p 5202
+    ${actual_upstream_bw_used}=    Evaluate    ${updict['end']['sum_received']['bits_per_second']}/1000
+    ${pct_limit_up}=    Evaluate
+    ...    100*${actual_upstream_bw_used}/${list_onus_ut}[1][limiting_bw_us]
+    Should Be True    ${pct_limit_up} >= ${lower_margin_pct}
+    ...    The upstream bandwidth guarantee was not met (${pct_limit_up}% of resv)
+
+    # Case 2: Verify ONU1 and ONU2 will share rest of bw in PON Port. (Expect provisioned fixed bw)
+    ${out_file_0}=    Set Variable    /tmp/out1_tcont4
+    ${dst_0}=    Set Variable    ${list_onus_ut}[0][dst]
+    Run Iperf3 Test Client in Background    ${list_onus_ut}[0][src]    server=${dst_0['dp_iface_ip_qinq']}
+    ...    args=-t 30 -p 5201    out_file=${out_file_0}
+    ${out_file_1}=    Set Variable    /tmp/out2_tcont4
+    ${dst_0}=    Set Variable    ${list_onus_ut}[0][dst]
+    ${dst_1}=    Set Variable    ${list_onus_ut}[1][dst]
+    Run Iperf3 Test Client in Background    ${list_onus_ut}[1][src]    server=${dst_1['dp_iface_ip_qinq']}
+    ...    args=-t 30 -p 5202    out_file=${out_file_1}
+    # Wait for the above iperf commands to finish (sleep time depends on -t arg value passed in iperf command)
+    Sleep    35s
+    ${out_0}=    Read Output File on System    ${out_file_0}
+    ${out_1}=    Read Output File on Remote System    ${list_onus_ut}[1][src]    ${out_file_1}
+    # Verify ONU1 and ONU2 tcont4 is share rest of bw.
+    ${actual_upstream_bw_used_0}=    Evaluate    ${out_0['end']['sum_received']['bits_per_second']}/1000
+    ${pct_limit_up_0}=    Evaluate
+    ...    100*${actual_upstream_bw_used_0}/((${pon_max_bw_capacity_xgs}-${limiting_bw_us_fill_pon_bw})/2)
+    Should Be True    ${pct_limit_up_0} >= ${lower_margin_pct}
+    ...    The upstream bandwidth guarantee was not met (${pct_limit_up_0}% of resv)
+    ${actual_upstream_bw_used_1}=    Evaluate    ${out_1['end']['sum_received']['bits_per_second']}/1000
+    ${pct_limit_up_1}=    Evaluate
+    ...    100*${actual_upstream_bw_used_1}/((${pon_max_bw_capacity_xgs}-${limiting_bw_us_fill_pon_bw})/2)
+    Should Be True    ${pct_limit_up_1} >= ${lower_margin_pct}
+    ...    The upstream bandwidth guarantee was not met (${pct_limit_up_1}% of resv)
+    # Verify ONU3 (fixed bw) tcont1 air bw is reservered.
+    ${actual_reserved_upstream_bw_for_tcont1}=    Evaluate
+    ...    ${pon_max_bw_capacity_xgs}-(${actual_upstream_bw_used_0}+${actual_upstream_bw_used_1})
+    ${pct_limit_up_tcont1}=    Evaluate    100*${actual_reserved_upstream_bw_for_tcont1}/${limiting_bw_us_fill_pon_bw}
+    Should Be True    ${pct_limit_up_tcont1} >= ${lower_margin_pct}
+    ...    The upstream bandwidth guarantee was not met (${pct_limit_up_1}% of resv)
+
+    # Sent original sadis file to onos
+    Send File To Onos    ${CURDIR}/../../tests/data/flex-ocp-cord-sadis-TT.json
+
 *** Keywords ***
+Read Output File on Remote System
+    [Arguments]    ${src}    ${file}
+    [Documentation]    Login to ${src} and reads the content of ${file}.
+    Get File from Remote System    ${file}    ${src['ip']}    ${src['user']}    ${src['pass']}
+    ${output}=    OperatingSystem.Get File    ${file}
+    Log    ${output}
+    ${object}=    Evaluate    json.loads(r'''${output}''')    json
+    [Return]    ${object}
+
+Get File from Remote System
+    [Arguments]    ${file}    ${ip}    ${user}    ${pass}=${None}
+    [Documentation]    Gets file from the remote system and stores it in /tmp folder on local
+    ${conn_id}=    SSHLibrary.Open Connection    ${ip}
+    Run Keyword If    '${pass}' != '${None}'
+    ...    SSHLibrary.Login    ${user}    ${pass}
+    ...    ELSE
+    ...    SSHLibrary.Login With Public Key    ${user}    %{HOME}/.ssh/id_rsa
+    SSHLibrary.Get File    ${file}    /tmp/
+    SSHLibrary.Close Connection
+
 Read Output File on System
     [Arguments]    ${file}
     [Documentation]    Reads the content of ${file}.
