Fix TP pbit verification test.
The s-tag from the BNG also should carry the same pbit as the c-tag.
Otherwise the RG could receive pbit 0 instead of any other intended pbit
because the pbit from the s-tag is copied (possibly) by BAL to c-tag and
since the pbit on the s-tag default to 0 if not filled at BNG, it could
corrupt RGs pbit on the c-tag.

Change-Id: Icf4ee4d438d35bee4dc133b8a6503cd21222c1c7
diff --git a/libraries/utils.robot b/libraries/utils.robot
index c332041..bd03aa3 100755
--- a/libraries/utils.robot
+++ b/libraries/utils.robot
@@ -1360,14 +1360,17 @@
     [Documentation]    Generates upstream traffic using Mausezahn tool
     ...    with each pbit and validates reception at other end using tcpdump
     [Arguments]    ${target_ip}    ${target_iface}    ${src_iface}
-    ...    ${packet_count}    ${packet_type}    ${vlan}    ${tcpdump_filter}
+    ...    ${packet_count}    ${packet_type}    ${c_vlan}    ${s_vlan}    ${direction}    ${tcpdump_filter}
     ...    ${dst_ip}    ${dst_user}    ${dst_pass}    ${dst_container_type}    ${dst_container_name}
     ...    ${src_ip}    ${src_user}    ${src_pass}    ${src_container_type}    ${src_container_name}
     FOR    ${pbit}    IN RANGE    8
         Execute Remote Command    sudo pkill mausezahn
         ...    ${src_ip}    ${src_user}    ${src_pass}    ${src_container_type}    ${src_container_name}
         ${var1}=    Set Variable    sudo mausezahn ${src_iface} -B ${target_ip} -c ${packet_count}
-        ${var2}=    Set Variable    -t ${packet_type} "dp=80, flags=rst, p=aa:aa:aa" -Q ${pbit}:${vlan}
+        ${var2}=    Run Keyword If    "${direction}"=="downstream"
+        ...    Set Variable    -t ${packet_type} "dp=80, flags=rst, p=aa:aa:aa" -Q ${pbit}:${s_vlan},${pbit}:${c_vlan}
+        ...    ELSE
+        ...    Set Variable    -t ${packet_type} "dp=80, flags=rst, p=aa:aa:aa" -Q ${pbit}:${c_vlan}
         ${cmd}=    Set Variable    ${var1} ${var2}
         Start Remote Command    ${cmd}    ${src_ip}    ${src_user}    ${src_pass}
         ...    ${src_container_type}    ${src_container_name}
diff --git a/tests/dt-workflow/Voltha_DT_PODTests.robot b/tests/dt-workflow/Voltha_DT_PODTests.robot
index 5aa46e6..c44116e 100755
--- a/tests/dt-workflow/Voltha_DT_PODTests.robot
+++ b/tests/dt-workflow/Voltha_DT_PODTests.robot
@@ -608,7 +608,7 @@
         Log    Upstream test
         Run Keyword If    ${has_dataplane}    Create traffic with each pbit and capture at other end
         ...    ${dst['dp_iface_ip_qinq']}    ${dst['dp_iface_name']}    ${src_iface_name}
-        ...    0    tcp     ${src['c_tag']}    vlan
+        ...    0    tcp     ${src['c_tag']}    ${src['s_tag']}    upstream    vlan
         ...    ${bng_ip}    ${bng_user}    ${bng_pass}    ${dst['container_type']}    ${dst['container_name']}
         ...    ${src['ip']}    ${src['user']}    ${src['pass']}    ${src['container_type']}    ${src['container_name']}
         Log    Downstream test
@@ -617,8 +617,8 @@
         ...    ${src['ip']}    ${src['user']}    ${src['pass']}    ${src['container_type']}    ${src['container_name']}
         Should Be Equal As Integers    ${rc}    0    Could not get RG's IP address
         Run Keyword If    ${has_dataplane}    Create traffic with each pbit and capture at other end
-        ...    ${rg_ip}    ${src_iface_name}    ${dst['dp_iface_name']}.${src['s_tag']}
-        ...    0    tcp    ${src['c_tag']}    tcp
+        ...    ${rg_ip}    ${src_iface_name}    ${dst['dp_iface_name']}
+        ...    0    tcp    ${src['c_tag']}    ${src['s_tag']}    downstream    tcp
         ...    ${src['ip']}    ${src['user']}    ${src['pass']}    ${src['container_type']}    ${src['container_name']}
         ...    ${bng_ip}    ${bng_user}    ${bng_pass}    ${dst['container_type']}    ${dst['container_name']}
     END
diff --git a/tests/functional/Voltha_PODTests.robot b/tests/functional/Voltha_PODTests.robot
index 7faba13..b513e0d 100755
--- a/tests/functional/Voltha_PODTests.robot
+++ b/tests/functional/Voltha_PODTests.robot
@@ -624,7 +624,7 @@
     ...    Install jq tool to read json file, where test suite is being running
     ...    This test sends TCP packets with pbits between 0 and 7 and validates that
     ...    the pbits are preserved by the PON.
-    [Tags]    dataplane    TechProfile    VOL-2054    notready
+    [Tags]    dataplane    TechProfile    VOL-2054
     [Setup]    Start Logging    TechProfile
     [Teardown]    Run Keywords    Collect Logs
     ...           AND    Stop Logging    TechProfile
@@ -649,7 +649,7 @@
         Log    Upstream test
         Run Keyword If    ${has_dataplane}    Create traffic with each pbit and capture at other end
         ...    ${dst['dp_iface_ip_qinq']}    ${dst['dp_iface_name']}    ${src['dp_iface_name']}
-        ...    0    tcp     0    vlan
+        ...    0    tcp     0    ${src['s_tag']}    upstream    vlan
         ...    ${bng_ip}    ${bng_user}    ${bng_pass}    ${dst['container_type']}    ${dst['container_name']}
         ...    ${src['ip']}    ${src['user']}    ${src['pass']}    ${src['container_type']}    ${src['container_name']}
         Log    Downstream test
@@ -658,8 +658,8 @@
         ...    ${src['ip']}    ${src['user']}    ${src['pass']}    ${src['container_type']}    ${src['container_name']}
         Should Be Equal As Integers    ${rc}    0    Could not get RG's IP address
         Run Keyword If    ${has_dataplane}    Create traffic with each pbit and capture at other end
-        ...    ${rg_ip}    ${src['dp_iface_name']}    ${dst['dp_iface_name']}.${src['s_tag']}
-        ...    0    tcp    ${src['c_tag']}    tcp
+        ...    ${rg_ip}    ${src['dp_iface_name']}    ${dst['dp_iface_name']}
+        ...    0    tcp    ${src['c_tag']}    ${src['s_tag']}    downstream    tcp
         ...    ${src['ip']}    ${src['user']}    ${src['pass']}    ${src['container_type']}    ${src['container_name']}
         ...    ${bng_ip}    ${bng_user}    ${bng_pass}    ${dst['container_type']}    ${dst['container_name']}
     END