diff --git a/Makefile b/Makefile
index 3c815c6..a5da809 100755
--- a/Makefile
+++ b/Makefile
@@ -179,6 +179,20 @@
 sanity-single-kind: ROBOT_CONFIG_FILE := $(ROBOT_SANITY_SINGLE_PON_FILE)
 sanity-single-kind: bbsim-kind
 
+sanity-bbsim-att: ROBOT_MISC_ARGS += -v logging:True -v workflow:ATT
+sanity-bbsim-att: sanity-bbsim
+
+sanity-bbsim-dt: ROBOT_MISC_ARGS += -v logging:True -v workflow:DT
+sanity-bbsim-dt: sanity-bbsim
+
+sanity-bbsim-tt: ROBOT_MISC_ARGS += -v logging:True -v workflow:TT
+sanity-bbsim-tt: sanity-bbsim
+
+sanity-bbsim: ROBOT_MISC_ARGS += -i bbsimSanity $(ROBOT_DEBUG_LOG_OPT)
+sanity-bbsim: ROBOT_CONFIG_FILE := $(ROBOT_SANITY_SINGLE_PON_FILE)
+sanity-bbsim: ROBOT_FILE := Voltha_BBSimTests.robot
+sanity-bbsim: voltha-bbsim-test
+
 rwcore-restart-single-kind: ROBOT_MISC_ARGS += -X -i functionalANDrwcore-restart $(ROBOT_DEBUG_LOG_OPT)
 rwcore-restart-single-kind: ROBOT_CONFIG_FILE := $(ROBOT_FAIL_SINGLE_PON_FILE)
 rwcore-restart-single-kind: ROBOT_FILE := Voltha_FailureScenarios.robot
@@ -320,6 +334,10 @@
 	cd tests/openonu-go-adapter ;\
 	robot -V $(ROBOT_CONFIG_FILE) $(ROBOT_MISC_ARGS) $(ROBOT_FILE)
 
+voltha-bbsim-test: vst_venv
+	source ./$</bin/activate ; set -u ;\
+	cd tests/bbsim ;\
+	robot -V $(ROBOT_CONFIG_FILE) $(ROBOT_MISC_ARGS) $(ROBOT_FILE)
 
 # self-test, lint, and setup targets
 
diff --git a/libraries/bbsim.robot b/libraries/bbsim.robot
new file mode 100644
index 0000000..12ce3a6
--- /dev/null
+++ b/libraries/bbsim.robot
@@ -0,0 +1,59 @@
+# Copyright 2017-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# onos common functions
+
+*** Settings ***
+Documentation     Library for BBSimCtl interactions
+Resource          ./k8s.robot
+
+*** Keywords ***
+List ONUs
+    [Documentation]  Lists ONUs via BBSimctl
+    [Arguments]    ${namespace}    ${bbsim_pod_name}
+    ${onus}    ${rc}=    Exec Pod And Return Output And RC    ${namespace}    ${bbsim_pod_name}
+    ...    bbsimctl onu list
+    Log     ${onus}
+    Should Be Equal as Integers    ${rc}    0
+
+Restart Auth
+    [Documentation]  Restart Authentication on a BBSim ONU
+    [Arguments]    ${namespace}    ${bbsim_pod_name}    ${onu}
+    ${res}     ${rc}=    Exec Pod And Return Output And RC    ${namespace}    ${bbsim_pod_name}
+    ...    bbsimctl onu auth_restart ${onu}
+    Log     ${res}
+    Should Be Equal as Integers    ${rc}    0
+
+Restart DHCP
+    [Documentation]  Restart Dhcp on a BBSim ONU
+    [Arguments]    ${namespace}    ${bbsim_pod_name}    ${onu}
+    ${res}     ${rc}=    Exec Pod And Return Output And RC    ${namespace}    ${bbsim_pod_name}
+    ...    bbsimctl onu dhcp_restart ${onu}
+    Log     ${res}
+    Should Be Equal as Integers    ${rc}    0
+
+List Service
+    [Documentation]  Lists Service via BBSimctl
+    [Arguments]    ${namespace}    ${bbsim_pod_name}
+    ${service}    ${rc}=    Exec Pod And Return Output And RC    ${namespace}    ${bbsim_pod_name}
+    ...    bbsimctl service list
+    Log     ${service}
+    Should Be Equal as Integers    ${rc}    0
+
+JoinOrLeave Igmp
+    [Documentation]  Joins or Leaves Igmp on a BBSim ONU
+    [Arguments]    ${namespace}    ${bbsim_pod_name}    ${onu}    ${task}    ${group_address}=224.0.0.22
+    ${res}    ${rc}=    Exec Pod And Return Output And RC    ${namespace}    ${bbsim_pod_name}
+    ...    bbsimctl onu igmp ${onu} ${task} ${group_address}
+    Log     ${res}
+    Should Be Equal as Integers    ${rc}    0
diff --git a/libraries/k8s.robot b/libraries/k8s.robot
index 213246e..c8cfd69 100644
--- a/libraries/k8s.robot
+++ b/libraries/k8s.robot
@@ -68,13 +68,19 @@
     [Documentation]    Uses kubectl to execute a command in the pod and return the output
     ${rc}    ${exec_pod_name}=    Run and Return Rc and Output
     ...    kubectl -n ${namespace} get pods -l app.kubernetes.io/name=${name} -o name
+
+Exec Pod And Return Output And RC
+    [Arguments]    ${namespace}    ${name}    ${command}
+    [Documentation]    Uses kubectl to execute a command in the pod and return the output
+    ${rc}    ${exec_pod_name}=    Run and Return Rc and Output
+    ...    kubectl get pods -n ${namespace} | grep ${name} | awk 'NR==1{print $1}'
+
     Log    ${exec_pod_name}
     Should Not Be Empty    ${exec_pod_name}    Unable to parse pod name
     ${rc}    ${output}=    Run and Return Rc and Output
     ...    kubectl exec -i ${exec_pod_name} -n ${namespace} -- ${command}
     Log    ${output}
-    [return]    ${output}
-
+    [return]    ${output}   ${rc}
 
 Exec Pod Separate Stderr
     [Arguments]    ${namespace}    ${name}    ${command}
@@ -137,6 +143,14 @@
     Log    ${currentStatusofPod}
     Should Contain    ${currentStatusofPod}    ${expectedStatus}
 
+Get Pod Name By Label
+    [Arguments]    ${namespace}    ${label_key}   ${label_value}
+    [Documentation]  Return a pod name from a given label
+    ${rc}    ${pod_name}=    Run and Return Rc and Output
+        ...    kubectl get pods -n ${namespace} -l ${label_key}=${label_value} --no-headers | awk '{print $1}'
+    Should Not Be Empty    ${pod_name}    Pod not found
+    [return]  ${pod_name}
+
 Validate Pods Status By Label
     [Arguments]    ${namespace}    ${label_key}   ${label_value}    ${expectedStatus}
     [Documentation]    To run the kubectl command and check the status of all pods filter
diff --git a/libraries/onos.robot b/libraries/onos.robot
index 66904b9..1f785f5 100755
--- a/libraries/onos.robot
+++ b/libraries/onos.robot
@@ -419,6 +419,38 @@
     ${aaa_users}=    Execute ONOS CLI Command    ${ip}    ${port}    aaa-users | grep AUTHORIZED | grep ${onu_port}
     Should Not Be Empty    ${aaa_users}    ONU port ${onu_port} not found in aaa-users
 
+Verify ONU in Groups
+    [Arguments]    ${ip_onos}    ${port_onos}    ${deviceId}    ${onu_port}    ${group_exist}=True
+    [Documentation]    Verifies that the specified onu_port exists in groups output
+    ${result}=    Execute ONOS CLI Command    ${ip_onos}    ${port_onos}    groups -j
+    Log    Groups: ${result}
+    ${groups}=    To Json    ${result}
+    ${length}=    Get Length    ${groups}
+    ${buckets}=    Create List
+    ${matched}=    Set Variable    False
+    FOR    ${INDEX}    IN RANGE    0    ${length}
+        ${value}=    Get From List    ${groups}    ${INDEX}
+        ${devId}=    Get From Dictionary    ${value}    deviceId
+        ${bucket}=    Get From Dictionary    ${value}    buckets
+        Run Keyword If    '${devId}'=='${deviceId}'
+        ...    Append To List    ${buckets}    ${bucket}
+    END
+    ${bucket_len}=    Get Length    ${buckets}
+    FOR    ${INDEX1}    IN RANGE    0    ${bucket_len}
+        ${value}=    Get From List    ${buckets}    ${INDEX}
+        ${value_bucket}=    Get From List    ${value}    0
+        ${treatment}=    Get From Dictionary    ${value_bucket}    treatment
+        ${instructions}=    Get From Dictionary    ${treatment}    instructions
+        ${instructions_val}=    Get From List    ${instructions}    0
+        ${port}=    Get From Dictionary    ${instructions_val}    port
+        ${matched}=    Set Variable If    '${port}'=='${onu_port}'    True    False
+        Exit For Loop If    ${matched}
+    END
+    Run Keyword If    ${group_exist}
+    ...    Should Be True    ${matched}    No match for ${deviceId} and ${onu_port} found in ONOS groups
+    ...    ELSE
+    ...    Should Be True    '${matched}'=='False'    Match for ${deviceId} and ${onu_port} found in ONOS groups
+
 Assert Number of AAA-Users
     [Arguments]    ${onos_ssh_connection}    ${expected_onus}   ${deviceId}
     [Documentation]    Matches for number of aaa-users authorized based on number of onus
diff --git a/tests/bbsim/Voltha_BBSimTests.robot b/tests/bbsim/Voltha_BBSimTests.robot
new file mode 100644
index 0000000..a494b0f
--- /dev/null
+++ b/tests/bbsim/Voltha_BBSimTests.robot
@@ -0,0 +1,162 @@
+# Copyright 2020 - present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+Suite Setup       Setup Suite
+Suite Teardown    Teardown Suite
+Test Setup        Setup
+Test Teardown     Teardown
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../../libraries/DependencyLibrary.py
+Resource          ../../libraries/onos.robot
+Resource          ../../libraries/voltctl.robot
+Resource          ../../libraries/voltha.robot
+Resource          ../../libraries/utils.robot
+Resource          ../../libraries/k8s.robot
+Resource          ../../libraries/bbsim.robot
+Resource          ../../variables/variables.robot
+
+*** Variables ***
+${NAMESPACE}      voltha
+${timeout}        60s
+${of_id}          0
+${logical_id}     0
+${has_dataplane}    False
+${external_libs}    True
+${teardown_device}    True
+${scripts}        ../../scripts
+# determines the environment workflow: DT, TT or ATT (default)
+# example: -v workflow:TT
+${workflow}    ATT
+# logging flag to enable Collect Logs, can be passed via the command line too
+# example: -v logging:True
+${logging}    False
+# Per-test logging on failure is turned off by default; set this variable to enable
+${container_log_dir}    ${None}
+# Number of times to perform ONU Igmp Join and Leave (valid only for TT)
+${igmp_join_leave_count}    1
+
+*** Test Cases ***
+
+Test Perform BBSim Sanity
+    [Documentation]    Validates the BBSim Functionality for ATT, DT and TT workflows
+    ...    Also Restart Auth (ATT), Restart Dhcp (ATT and TT), Igmp Join and Leave (TT)
+    ...    NOTE: Currently works only for single ONU in case of ATT
+    [Tags]    bbsimSanity
+    [Setup]   Run Keywords    Start Logging    BBSimSanity
+    ...    AND    Setup
+    FOR    ${J}    IN RANGE    0    ${num_olts}
+        ${olt_serial_number}=    Set Variable    ${list_olts}[${J}][sn]
+        ${onu_count}=    Set Variable    ${list_olts}[${J}][onucount]
+        ${of_id}=    Wait Until Keyword Succeeds    ${timeout}    15s    Validate OLT Device in ONOS
+        ...    ${olt_serial_number}
+        ${bbsim_rel}=    Catenate    SEPARATOR=    bbsim    ${J}
+        ${bbsim_pod}=    Get Pod Name By Label    ${NAMESPACE}    release     ${bbsim_rel}
+        Perform BBSim Sanity Test Per OLT    ${bbsim_pod}    ${of_id}    ${olt_serial_number}    ${onu_count}
+    END
+    [Teardown]    Run Keywords    Run Keyword If    ${logging}    Collect Logs
+    ...    AND    Stop Logging    BBSimSanity
+
+*** Keywords ***
+
+Perform ONU Igmp Join and Leave
+    [Documentation]    This keyword performs Igmp Leave and Join for ONU
+    [Arguments]    ${bbsim_pod}    ${of_id}    ${onu}    ${onu_port}
+    FOR    ${Z}    IN RANGE    0    ${igmp_join_leave_count}
+        List Service    ${NAMESPACE}    ${bbsim_pod}
+        JoinOrLeave Igmp    ${NAMESPACE}    ${bbsim_pod}    ${onu}    join
+        Sleep    2s
+        List Service    ${NAMESPACE}    ${bbsim_pod}
+        List ONUs    ${NAMESPACE}    ${bbsim_pod}
+        Run Keyword And Continue On Failure    Wait Until Keyword Succeeds    ${timeout}    2s
+        ...    Verify ONU in Groups    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${of_id}    ${onu_port}
+        JoinOrLeave Igmp    ${NAMESPACE}    ${bbsim_pod}    ${onu}    leave
+        Sleep    2s
+        List Service    ${NAMESPACE}    ${bbsim_pod}
+        List ONUs    ${NAMESPACE}    ${bbsim_pod}
+        Run Keyword And Continue On Failure    Wait Until Keyword Succeeds    ${timeout}    2s
+        ...    Verify ONU in Groups    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${of_id}    ${onu_port}    False
+    END
+
+Perform BBSim Sanity Test Per OLT
+    [Documentation]    Validates the BBSim Functionality for ATT, DT and TT workflows
+    ...    Also Restart Auth (ATT), Restart Dhcp (ATT and TT), Igmp Join and Leave (TT)
+    [Arguments]    ${bbsim_pod}    ${of_id}    ${olt_serial_number}   ${num_onus}
+    FOR    ${I}    IN RANGE    0    ${num_all_onus}
+        ${src}=    Set Variable    ${hosts.src[${I}]}
+        ${dst}=    Set Variable    ${hosts.dst[${I}]}
+        Continue For Loop If    "${olt_serial_number}"!="${src['olt']}"
+        ${onu_device_id}=    Get Device ID From SN    ${src['onu']}
+        ${onu_port}=    Run Keyword And Continue On Failure    Wait Until Keyword Succeeds    ${timeout}    2s
+        ...    Get ONU Port in ONOS    ${src['onu']}    ${of_id}
+        # Check ONU port is Enabled in ONOS
+        Run Keyword And Continue On Failure    Wait Until Keyword Succeeds   120s   2s
+        ...    Verify ONU Port Is Enabled   ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${src['onu']}
+        Run Keyword If    "${workflow}"=="ATT"
+        ...    Run Keywords
+        # Verify ONU in AAA-Users (valid only for ATT)
+        ...    Run Keyword And Continue On Failure    Wait Until Keyword Succeeds    ${timeout}    2
+        ...    Verify ONU in AAA-Users    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${onu_port}
+        ...    AND    List ONUs    ${NAMESPACE}    ${bbsim_pod}
+        # Restart Auth and Verify (valid only for ATT)
+        ...    AND    Execute ONOS CLI Command on open connection     ${onos_ssh_connection}
+        ...    aaa-reset-all-devices
+        ...    AND    Restart Auth    ${NAMESPACE}    ${bbsim_pod}    ${src['onu']}
+        ...    AND    Run Keyword And Continue On Failure    Wait Until Keyword Succeeds    ${timeout}    2
+        ...    Verify ONU in AAA-Users    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${onu_port}
+        ...    AND    List ONUs    ${NAMESPACE}    ${bbsim_pod}
+        # Add Subscriber
+        Run Keyword And Continue On Failure    Wait Until Keyword Succeeds    ${timeout}    2
+        ...    Execute ONOS CLI Command on open connection    ${onos_ssh_connection}
+        ...    volt-add-subscriber-access ${of_id} ${onu_port}
+        # Verify that no pending flows exist for the ONU port
+        Run Keyword And Continue On Failure    Wait Until Keyword Succeeds    ${timeout}    2s
+        ...    Verify No Pending Flows For ONU    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${onu_port}
+        # Verify subscriber  dhcp allocations (valid only for ATT and TT)
+        Run Keyword If    "${workflow}"=="ATT" or "${workflow}"=="TT"
+        ...    Run Keywords
+        ...    Run Keyword And Continue On Failure    Wait Until Keyword Succeeds    ${timeout}    2s
+        ...    Validate Subscriber DHCP Allocation    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${onu_port}
+        ...    AND    List ONUs    ${NAMESPACE}    ${bbsim_pod}
+        # Restart Dhcp and Verify (valid only for ATT and TT)
+        ...    AND    Execute ONOS CLI Command on open connection     ${onos_ssh_connection}
+        ...    dhcpl2relay-remove-allocation ${of_id} ${onu_port}
+        ...    AND    Restart DHCP    ${NAMESPACE}    ${bbsim_pod}    ${src['onu']}
+        ...    AND    Run Keyword And Continue On Failure    Wait Until Keyword Succeeds    ${timeout}    2s
+        ...    Validate Subscriber DHCP Allocation    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${onu_port}
+        ...    AND    List ONUs    ${NAMESPACE}    ${bbsim_pod}
+        # Perform Igmp Join and Leave (valid only for TT)
+        Run Keyword If    "${workflow}"=="TT"
+        ...    Perform ONU Igmp Join and Leave    ${bbsim_pod}    ${of_id}    ${src['onu']}    ${onu_port}
+    END
+
+Setup Suite
+    [Documentation]    Set up the test suite
+    Common Test Suite Setup
+    #send igmp file to onos (valid only for TT)
+    ${onos_netcfg_file}=    Get Variable Value    ${onos_netcfg.file}
+    Run Keyword If    '${workflow}'=='TT' and '${has_dataplane}'=='False' and '${onos_netcfg_file}'!='${None}'
+    ...    Send File To Onos    ${onos_netcfg_file}    apps/
+    ${onos_ssh_connection}    Open ONOS SSH Connection    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}
+    Set Suite Variable    ${onos_ssh_connection}
+
+Teardown Suite
+    [Documentation]    Replaces the Suite Teardown in utils.robot.
+    ...    Cleans up and checks all ONU ports disabled in ONOS.
+    Run Keyword If    ${teardown_device}    Delete All Devices and Verify
+    Close All ONOS SSH Connections
diff --git a/tests/data/bbsim-kind.yaml b/tests/data/bbsim-kind.yaml
index 5326f68..cedde9f 100644
--- a/tests/data/bbsim-kind.yaml
+++ b/tests/data/bbsim-kind.yaml
@@ -42,3 +42,7 @@
 
   dst:
     - ip: null
+
+# To read only if workflow is "TT"
+onos_netcfg:
+  file: ${CURDIR}/../../data/onos-igmp.json
diff --git a/tests/data/onos-igmp.json b/tests/data/onos-igmp.json
new file mode 100644
index 0000000..76f4fa4
--- /dev/null
+++ b/tests/data/onos-igmp.json
@@ -0,0 +1,22 @@
+{
+    "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
+        }
+    }
+}
