diff --git a/vslib/src/SwitchStateBaseHostif.cpp b/vslib/src/SwitchStateBaseHostif.cpp index bc654f8f5da2..9092ce229aa8 100644 --- a/vslib/src/SwitchStateBaseHostif.cpp +++ b/vslib/src/SwitchStateBaseHostif.cpp @@ -560,6 +560,12 @@ sai_status_t SwitchStateBase::vs_create_hostif_tap_interface( sai_object_type_t ot = objectTypeQuery(obj_id); + if (ot == SAI_OBJECT_TYPE_VLAN) + { + SWSS_LOG_DEBUG("Skipping tap creation for hostif with object type VLAN"); + return SAI_STATUS_SUCCESS; + } + if (ot != SAI_OBJECT_TYPE_PORT) { SWSS_LOG_ERROR("SAI_HOSTIF_ATTR_OBJ_ID=%s expected to be PORT but is: %s", @@ -743,6 +749,19 @@ sai_status_t SwitchStateBase::vs_remove_hostif_tap_interface( return SAI_STATUS_SUCCESS; } + attr.id = SAI_HOSTIF_ATTR_OBJ_ID; + status = get(SAI_OBJECT_TYPE_HOSTIF, hostif_id, 1, &attr); + if (status != SAI_STATUS_SUCCESS) + { + SWSS_LOG_ERROR("Failed to get object ID for hostif %s", sai_serialize_object_id(hostif_id).c_str()); + return status; + } + if (objectTypeQuery(attr.value.oid) == SAI_OBJECT_TYPE_VLAN) + { + SWSS_LOG_DEBUG("Skipping tap deletion for hostif with object type VLAN"); + return SAI_STATUS_SUCCESS; + } + attr.id = SAI_HOSTIF_ATTR_NAME; status = get(SAI_OBJECT_TYPE_HOSTIF, hostif_id, 1, &attr);