def __init__(self, db_id: str, connector: str): DVSDatabase.__init__(self, db_id, connector) # Get default .1Q Vlan ID self.default_vlan_id = self.wait_for_n_keys( "ASIC_STATE:SAI_OBJECT_TYPE_VLAN", 1)[0] # Build port OID to front port name mapping self.portoidmap = {} self.portnamemap = {} self.hostifoidmap = {} self.hostifnamemap = {} keys = self.wait_for_n_keys("ASIC_STATE:SAI_OBJECT_TYPE_HOSTIF", NUM_PORTS) for k in keys: fvs = self.get_entry("ASIC_STATE:SAI_OBJECT_TYPE_HOSTIF", k) port_oid = fvs.get("SAI_HOSTIF_ATTR_OBJ_ID") port_name = fvs.get("SAI_HOSTIF_ATTR_NAME") self.portoidmap[port_oid] = port_name self.portnamemap[port_name] = port_oid self.hostifoidmap[k] = port_name self.hostifnamemap[port_name] = k # Get default ACL table and ACL rules self.default_acl_tables = self.get_keys( "ASIC_STATE:SAI_OBJECT_TYPE_ACL_TABLE") assert len(self.default_acl_tables) >= 0 self.default_acl_entries = self.wait_for_n_keys( "ASIC_STATE:SAI_OBJECT_TYPE_ACL_ENTRY", 0)
def __init__(self, db_id: int, connector: str, gearbox: Gearbox): DVSDatabase.__init__(self, db_id, connector) self.gearbox = gearbox self.ports = {} self._wait_for_gb_asic_db_to_initialize() for connector in self.get_keys( "ASIC_STATE:SAI_OBJECT_TYPE_PORT_CONNECTOR"): fvs = self.get_entry("ASIC_STATE:SAI_OBJECT_TYPE_PORT_CONNECTOR", connector) system_port_oid = fvs.get( "SAI_PORT_CONNECTOR_ATTR_SYSTEM_SIDE_PORT_ID") line_port_oid = fvs.get( "SAI_PORT_CONNECTOR_ATTR_LINE_SIDE_PORT_ID") fvs = self.get_entry("ASIC_STATE:SAI_OBJECT_TYPE_PORT", system_port_oid) system_lanes = fvs.get("SAI_PORT_ATTR_HW_LANE_LIST").split(":")[-1] fvs = self.get_entry("ASIC_STATE:SAI_OBJECT_TYPE_PORT", line_port_oid) line_lanes = fvs.get("SAI_PORT_ATTR_HW_LANE_LIST").split(":")[-1] for i in self.gearbox.interfaces: intf = self.gearbox.interfaces[i] if intf["system_lanes"] == system_lanes: assert intf["line_lanes"] == line_lanes self.ports[intf["index"]] = (system_port_oid, line_port_oid) assert len(self.ports) == len(self.gearbox.interfaces)