in ptf/saiswitch.py [0:0]
def readOnlyAttributesTest(self):
print("\nreadOnlyAttributesTest()")
attr = sai_thrift_get_switch_attribute(self.client,
number_of_active_ports=True)
if attr:
print(attr)
self.assertNotEqual(attr["number_of_active_ports"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_NUMBER_OF_ACTIVE_PORTS"], 0)
active_ports = attr["number_of_active_ports"]
else:
print("get number_of_active_ports failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(
self.client, max_number_of_supported_ports=True)
if attr:
print(attr)
self.assertNotEqual(attr["max_number_of_supported_ports"], 0)
self.assertNotEqual(
attr["SAI_SWITCH_ATTR_MAX_NUMBER_OF_SUPPORTED_PORTS"], 0)
else:
# Broadcom return -196608
print("get max_number_of_supported_ports failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(
self.client,
port_list=sai_thrift_object_list_t(idlist=[], count=active_ports))
if attr:
print(attr)
self.assertNotEqual(attr["port_list"].count, 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_PORT_LIST"].count, 0)
else:
print("get port_list failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client, port_max_mtu=True)
if attr:
print(attr)
self.assertNotEqual(attr["port_max_mtu"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_PORT_MAX_MTU"], 0)
else:
# Broadcom return -196608
print("get port_max_mtu failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client, cpu_port=True)
if attr:
print(attr)
self.assertNotEqual(attr["cpu_port"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_CPU_PORT"], 0)
else:
print("get cpu_port failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
max_virtual_routers=True)
if attr:
print(attr)
self.assertNotEqual(attr["max_virtual_routers"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_MAX_VIRTUAL_ROUTERS"], 0)
else:
print("get max_virtual_routers failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
fdb_table_size=True)
if attr:
print(attr)
self.assertNotEqual(attr["fdb_table_size"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_FDB_TABLE_SIZE"], 0)
else:
print("get fdb_table_size failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
l3_neighbor_table_size=True)
if attr:
print(attr)
self.assertNotEqual(attr["l3_neighbor_table_size"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_L3_NEIGHBOR_TABLE_SIZE"], 0)
else:
# Broadcom return -196608
print("get l3_neighbor_table_size failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
l3_route_table_size=True)
if attr:
print(attr)
self.assertNotEqual(attr["l3_route_table_size"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_L3_ROUTE_TABLE_SIZE"], 0)
else:
# Broadcom return -196608
print("get l3_route_table_size failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client, lag_members=True)
if attr:
print(attr)
self.assertNotEqual(attr["lag_members"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_LAG_MEMBERS"], 0)
else:
print("get lag_members failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
number_of_lags=True)
if attr:
print(attr)
self.assertNotEqual(attr["number_of_lags"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_NUMBER_OF_LAGS"], 0)
else:
print("get number_of_lags failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client, ecmp_members=True)
if attr:
print(attr)
self.assertNotEqual(attr["ecmp_members"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_ECMP_MEMBERS"], 0)
else:
print("get ecmp_members failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
number_of_ecmp_groups=True)
if attr:
print(attr)
self.assertNotEqual(attr["number_of_ecmp_groups"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_NUMBER_OF_ECMP_GROUPS"], 0)
else:
print("get number_of_ecmp_groups failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
number_of_unicast_queues=True)
if attr:
print(attr)
self.assertNotEqual(attr["number_of_unicast_queues"], 0)
self.assertNotEqual(
attr["SAI_SWITCH_ATTR_NUMBER_OF_UNICAST_QUEUES"], 0)
else:
print("get number_of_unicast_queues failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
number_of_multicast_queues=True)
if attr:
print(attr)
self.assertNotEqual(attr["number_of_multicast_queues"], 0)
self.assertNotEqual(
attr["SAI_SWITCH_ATTR_NUMBER_OF_MULTICAST_QUEUES"], 0)
else:
print("get number_of_multicast_queues failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
number_of_queues=True)
if attr:
print(attr)
self.assertNotEqual(attr["number_of_queues"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_NUMBER_OF_QUEUES"], 0)
else:
print("get number_of_queues failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
number_of_cpu_queues=True)
if attr:
print(attr)
self.assertNotEqual(attr["number_of_cpu_queues"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_NUMBER_OF_CPU_QUEUES"], 0)
else:
print("get number_of_cpu_queues failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
acl_table_minimum_priority=True)
if attr:
print(attr)
self.assertEqual(attr["acl_table_minimum_priority"], 0)
self.assertEqual(
attr["SAI_SWITCH_ATTR_ACL_TABLE_MINIMUM_PRIORITY"], 0)
else:
print("get acl_table_minimum_priority failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(
self.client, acl_table_maximum_priority=True)
if attr:
print(attr)
self.assertNotEqual(attr["acl_table_maximum_priority"], 0)
self.assertNotEqual(
attr["SAI_SWITCH_ATTR_ACL_TABLE_MAXIMUM_PRIORITY"], 0)
else:
print("get acl_table_maximum_priority failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
acl_entry_minimum_priority=True)
if attr:
print(attr)
self.assertEqual(attr["acl_entry_minimum_priority"], 0)
self.assertEqual(attr["SAI_SWITCH_ATTR_ACL_ENTRY_MINIMUM_PRIORITY"], 0)
else:
print("get acl_entry_minimum_priority failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
acl_entry_maximum_priority=True)
if attr:
print(attr)
self.assertNotEqual(attr["acl_entry_maximum_priority"], 0)
self.assertNotEqual(
attr["SAI_SWITCH_ATTR_ACL_ENTRY_MAXIMUM_PRIORITY"], 0)
else:
print("get acl_entry_maximum_priority failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
default_vlan_id=True)
if attr:
print(attr)
self.assertNotEqual(attr["default_vlan_id"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_DEFAULT_VLAN_ID"], 0)
else:
print("get default_vlan_id failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
default_stp_inst_id=True)
if attr:
print(attr)
# Broadcom got attr["default_stp_inst_id"]=68719476737
self.assertEqual(attr["default_stp_inst_id"], SAI_NULL_OBJECT_ID)
self.assertEqual(
attr["SAI_SWITCH_ATTR_DEFAULT_STP_INST_ID"], SAI_NULL_OBJECT_ID)
else:
print("get default_stp_inst_id failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
max_stp_instance=True)
if attr:
print(attr)
self.assertNotEqual(attr["max_stp_instance"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_MAX_STP_INSTANCE"], 0)
else:
print("get max_stp_instance failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
default_virtual_router_id=True)
if attr:
print(attr)
self.assertNotEqual(attr["default_virtual_router_id"], 0)
self.assertNotEqual(
attr["SAI_SWITCH_ATTR_DEFAULT_VIRTUAL_ROUTER_ID"], 0)
else:
print("get default_virtual_router_id failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
default_1q_bridge_id=True)
if attr:
print(attr)
self.assertNotEqual(attr["default_1q_bridge_id"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_DEFAULT_1Q_BRIDGE_ID"], 0)
else:
print("get default_1q_bridge_id failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(
self.client, qos_max_number_of_traffic_classes=True)
if attr:
print(attr)
self.assertNotEqual(attr["qos_max_number_of_traffic_classes"], 0)
self.assertNotEqual(
attr["SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_TRAFFIC_CLASSES"], 0)
else:
print("get qos_max_number_of_traffic_classes failed: {}".format(self.status()))
attr_name = "SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUP_" + \
"HIERARCHY_LEVELS"
attr = sai_thrift_get_switch_attribute(
self.client,
qos_max_number_of_scheduler_group_hierarchy_levels=True)
if attr:
print(attr)
self.assertNotEqual(
attr["qos_max_number_of_scheduler_group_hierarchy_levels"], 0)
self.assertNotEqual(attr[attr_name], 0)
else:
print("get qos_max_number_of_scheduler_group_hierarchy_levels failed: {}".format(self.status()))
scheduler_group_levels = attr[
"qos_max_number_of_scheduler_group_hierarchy_levels"]
value = sai_thrift_u32_list_t(count=scheduler_group_levels,
uint32list=[])
attr_name = "SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_SCHEDULER_GROUPS_" + \
"PER_HIERARCHY_LEVEL"
attr = sai_thrift_get_switch_attribute(
self.client,
qos_max_number_of_scheduler_groups_per_hierarchy_level=value)
if attr:
print(attr)
self.assertNotEqual(
attr["qos_max_number_of_scheduler_groups_per_hierarchy_level"], 0)
self.assertNotEqual(attr[attr_name], 0)
else:
print("get qos_max_number_of_scheduler_groups_per_hierarchy_level failed: {}".format(self.status()))
attr_name = "SAI_SWITCH_ATTR_QOS_MAX_NUMBER_OF_CHILDS_" + \
"PER_SCHEDULER_GROUP"
attr = sai_thrift_get_switch_attribute(
self.client, qos_max_number_of_childs_per_scheduler_group=True)
if attr:
print(attr)
self.assertNotEqual(
attr["qos_max_number_of_childs_per_scheduler_group"], 0)
self.assertNotEqual(attr[attr_name], 0)
else:
print("get qos_max_number_of_childs_per_scheduler_group failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
total_buffer_size=True)
if attr:
print(attr)
self.assertNotEqual(attr["total_buffer_size"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_TOTAL_BUFFER_SIZE"], 0)
else:
print("get total_buffer_size failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
ingress_buffer_pool_num=True)
if attr:
print(attr)
self.assertNotEqual(attr["ingress_buffer_pool_num"], 0)
self.assertNotEqual(
attr["SAI_SWITCH_ATTR_INGRESS_BUFFER_POOL_NUM"], 0)
else:
print("get ingress_buffer_pool_num failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
egress_buffer_pool_num=True)
if attr:
print(attr)
self.assertNotEqual(attr["egress_buffer_pool_num"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_EGRESS_BUFFER_POOL_NUM"], 0)
else:
print("get egress_buffer_pool_num failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client, ecmp_hash=True)
if attr:
print(attr)
self.assertNotEqual(attr["ecmp_hash"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_ECMP_HASH"], 0)
else:
print("get ecmp_hash failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client, lag_hash=True)
if attr:
print(attr)
self.assertNotEqual(attr["lag_hash"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_LAG_HASH"], 0)
else:
print("get lag_hash failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
max_acl_action_count=True)
if attr:
print(attr)
self.assertNotEqual(attr["max_acl_action_count"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_MAX_ACL_ACTION_COUNT"], 0)
max_acl_action_count = attr["max_acl_action_count"]
else:
print("get max_acl_action_count failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
max_acl_range_count=True)
if attr:
print(attr)
self.assertNotEqual(attr["max_acl_range_count"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_MAX_ACL_RANGE_COUNT"], 0)
else:
# Broadcom return -196608
print("get max_acl_range_count failed: {}".format(self.status()))
s32 = sai_thrift_s32_list_t(int32list=[], count=max_acl_action_count)
cap = sai_thrift_acl_capability_t(action_list=s32)
attr = sai_thrift_get_switch_attribute(self.client,
acl_capability=cap)
if attr:
print(attr)
self.assertNotEqual(attr["acl_capability"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_ACL_CAPABILITY"], 0)
else:
print("get acl_capability failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
max_mirror_session=True)
if attr:
print(attr)
self.assertNotEqual(attr["max_mirror_session"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_MAX_MIRROR_SESSION"], 0)
else:
# Broadcom return -196608
print("get max_mirror_session failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
default_trap_group=True)
if attr:
print(attr)
self.assertNotEqual(attr["default_trap_group"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_DEFAULT_TRAP_GROUP"], 0)
else:
print("get default_trap_group failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
acl_stage_ingress=cap)
if attr:
print(attr)
self.assertNotEqual(attr["acl_stage_ingress"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_ACL_STAGE_INGRESS"], 0)
else:
print("get acl_stage_ingress failed: {}".format(self.status()))
attr = sai_thrift_get_switch_attribute(self.client,
acl_stage_egress=cap)
if attr:
print(attr)
self.assertNotEqual(attr["acl_stage_egress"], 0)
self.assertNotEqual(attr["SAI_SWITCH_ATTR_ACL_STAGE_EGRESS"], 0)
else:
print("get acl_stage_egress failed: {}".format(self.status()))