Пример #1
0
    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)
Пример #2
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)