Example #1
0
    def test_getPfcSubtree(self):
        # Subtree for port
        oid = ObjectIdentifier(32, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 1))
        expected_oid = ObjectIdentifier(32, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 1, 1, 1, 1))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET_NEXT, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut_port)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.COUNTER_64)
        self.assertEqual(str(value0.name), str(expected_oid))
        self.assertEqual(value0.data, 4)

        # Subtree for Priority
        oid = ObjectIdentifier(33, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 2))
        expected_oid = ObjectIdentifier(33, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 2, 1, 2, 1, 0))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET_NEXT, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut_prio)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.COUNTER_64)
        self.assertEqual(str(value0.name), str(expected_oid))
        self.assertEqual(value0.data, 209347219842134092490 % pow(2, 64)) # Test integer truncation
Example #2
0
    def test_getpdu_xcvr_info(self):
        sub_id = 1000 * 1 # sub id for Ethernet100

        expected_mib = {
            2: (ValueType.OCTET_STRING, "QSFP+ for etp1"),
            5: (ValueType.INTEGER, PhysicalClass.PORT),
            7: (ValueType.OCTET_STRING, ""), # skip
            8: (ValueType.OCTET_STRING, "A1"),
            9: (ValueType.OCTET_STRING, ""), # skip
            10: (ValueType.OCTET_STRING, ""), # skip
            11: (ValueType.OCTET_STRING, "SERIAL_NUM"),
            12: (ValueType.OCTET_STRING, "VENDOR_NAME"),
            13: (ValueType.OCTET_STRING, "MODEL_NAME")
        }

        oids = [ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, field_sub_id, sub_id))
                for field_sub_id in expected_mib]

        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=oids
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)

        for mib_key, value in zip(expected_mib, response.values):
            expected_oid = ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, mib_key, sub_id))
            expected_type, expected_value = expected_mib[mib_key]
            self.assertEqual(str(value.name), str(expected_oid))
            self.assertEqual(value.type_, expected_type)
            self.assertEqual(str(value.data), str(expected_value))
Example #3
0
    def test_getnextpdu_local_port_identification(self):
        # oid.include = 1
        oid = ObjectIdentifier(11, 0, 1, 0, (1, 0, 8802, 1, 1, 2, 1, 3, 7, 1, 3))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.OCTET_STRING)
        self.assertEqual(str(value0.data), "etp1")
Example #4
0
    def test_getnextpdu_noeth(self):
        # oid.include = 1
        oid = ObjectIdentifier(12, 0, 1, 0, (1, 0, 8802, 1, 1, 2, 1, 4, 1, 1, 7, 18545, 126, 1))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        print("GetNextPDU sr=", get_pdu.sr)
        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)
        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.END_OF_MIB_VIEW)
Example #5
0
    def test_getnextpdu_chassis_serial_number(self):
        oid = ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, 11))
        expected_oid = ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, 11, 1))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET_NEXT, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)

        value0 = response.values[0]
        self.assertEqual(str(value0.name), str(expected_oid))
        self.assertEqual(value0.type_, ValueType.OCTET_STRING)
        self.assertEqual(str(value0.data), "SAMPLETESTSN")
    def test_getnextpdu_firstifalias(self):
        oid = ObjectIdentifier(10, 0, 1, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.OCTET_STRING)
        self.assertEqual(str(value0.name), str(ObjectIdentifier(11, 0, 1, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18, 1))))
        self.assertEqual(str(value0.data), 'snowflake')
Example #7
0
    def test_getNextPsu3(self):
        oid = ObjectIdentifier(2, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 117, 1, 1, 2, 1, 2, 3))
        expected_oid = None
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET_NEXT, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.END_OF_MIB_VIEW)
        self.assertEqual(str(value0.name), str(oid))
        self.assertEqual(value0.data, None)
Example #8
0
    def test_getnextpdu_empty(self):
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=(
                ObjectIdentifier(20, 0, 0, 0, (1, 3, 6, 1, 2, 1, 17, 7, 1, 2, 2, 1, 3)),
            )
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        n = len(response.values)
        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.END_OF_MIB_VIEW)
Example #9
0
    def test_getpdu_xcvr_dom(self):
        expected_mib = {
            1000 * 1 + 1: "DOM Temperature Sensor for etp1",
            1000 * 1 + 2: "DOM Voltage Sensor for etp1",
            1000 * 1 + 11: "DOM RX Power Sensor for etp1/1",
            1000 * 1 + 21: "DOM RX Power Sensor for etp1/2",
            1000 * 1 + 31: "DOM RX Power Sensor for etp1/3",
            1000 * 1 + 41: "DOM RX Power Sensor for etp1/4",
            1000 * 1 + 12: "DOM TX Bias Sensor for etp1/1",
            1000 * 1 + 22: "DOM TX Bias Sensor for etp1/2",
            1000 * 1 + 32: "DOM TX Bias Sensor for etp1/3",
            1000 * 1 + 42: "DOM TX Bias Sensor for etp1/4",
            1000 * 1 + 13: "DOM TX Power Sensor for etp1/1",
            1000 * 1 + 23: "DOM TX Power Sensor for etp1/2",
            1000 * 1 + 33: "DOM TX Power Sensor for etp1/3",
            1000 * 1 + 43: "DOM TX Power Sensor for etp1/4",
        }

        phyDescr, phyClass = 2, 5

        # check physical class value
        oids = [ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, field_id, sub_id))
                for field_id in (phyDescr, phyClass)
                for sub_id in expected_mib]

        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=oids
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)

        for mib_key, value in zip(expected_mib, response.values):
            if phyClass == value.name.subids[-2]:
                sub_id = (phyClass, mib_key)
                expected_type, expected_value = ValueType.INTEGER, PhysicalClass.SENSOR
            elif phyDescr == value.name.subids[-2]:
                sub_id = (phyDescr, mib_key)
                expected_type, expected_value = ValueType.OCTET_STRING, expected_mib[mib_key]
            else:
                # received unexpected
                self.assertTrue(False)

            expected_oid = ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, *sub_id))
            self.assertEqual(str(value.name), str(expected_oid))
            self.assertEqual(value.type_, expected_type)
            self.assertEqual(str(value.data), str(expected_value))
Example #10
0
    def test_getnextpdu(self):
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=(
                ObjectIdentifier(10, 0, 0, 0, (1, 3, 6, 1, 2, 1, 4, 21, 1, 7)),
            )
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        n = len(response.values)
        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.IP_ADDRESS)
        self.assertEqual(str(value0.data), ipaddress.ip_address("10.0.0.1").packed.decode())
Example #11
0
    def test_getnextpdu(self):
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=(
                ObjectIdentifier(20, 0, 0, 0, (1, 3, 6, 1, 2, 1, 4, 22, 1, 2, 37, 10, 0, 0, 19)),
            )
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        n = len(response.values)
        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.OCTET_STRING)
        self.assertEqual(value0.data.string, b'\x52\x54\x00\xd0\xa0\x8c')
Example #12
0
    def test_getnextpdu_eth1(self):
        oid = ObjectIdentifier(12, 0, 1, 0, (1, 0, 8802, 1, 1, 2, 1, 4, 1, 1, 7, 1, 1))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        print("GetNextPDU sr=", get_pdu.sr)
        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)
        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.OCTET_STRING)
        print("test_getnextpdu_exactmatch: ", str(oid))
        self.assertEqual(str(value0.name), str(ObjectIdentifier(11, 0, 1, 0, (1, 0, 8802, 1, 1, 2, 1, 4, 1, 1, 7, 1, 1))))
        self.assertEqual(str(value0.data), "Ethernet1")
Example #13
0
    def test_getnextpdu_first_default_status(self):
        oid = ObjectIdentifier(10, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 24, 4, 1, 16))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)

        n = len(response.values)
        # self.assertEqual(n, 7)
        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.INTEGER)
        self.assertEqual(str(value0.name), '.1.3.6.1.2.1.4.24.4.1.16.0.0.0.0.0.0.0.0.0.10.0.0.1')
        self.assertEqual(value0.data, 1)
Example #14
0
    def test_getnextpdu_exactmatch(self):
        oid = ObjectIdentifier(14, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 21, 1, 7, 0, 0, 0, 0))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        n = len(response.values)
        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.IP_ADDRESS)
        print("test_getnextpdu_exactmatch: ", str(oid))
        self.assertEqual(str(value0.name), str(oid))
        self.assertEqual(str(value0.data), ipaddress.ip_address("10.0.0.1").packed.decode())
    def test_no_speed(self):
        """
        For a port with no speed in the db the result should be 40000
        """
        oid = ObjectIdentifier(12, 0, 0, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 117))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.GAUGE_32)
        self.assertEqual(str(value0.name), str(ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 121))))
        self.assertEqual(value0.data, 40000)
    def test_high_speed(self):
        """
        should return the speed of the interface
        """
        oid = ObjectIdentifier(12, 0, 0, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 1))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.GAUGE_32)
        self.assertEqual(str(value0.name), str(ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 5))))
        self.assertEqual(value0.data, 100000)
    def test_no_description(self):
        """
        For a port with no description in the db the result should be ian empty string
        """
        oid = ObjectIdentifier(12, 0, 0, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18, 113))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.OCTET_STRING)
        self.assertEqual(str(value0.name), str(ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18, 117))))
        self.assertEqual(str(value0.data), '')
    def test_low_speed(self):
        """
        For an interface with a speed inside the 32 bit counter returns the speed of the interface in Mbps
        """
        oid = ObjectIdentifier(12, 0, 0, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 113))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.GAUGE_32)
        self.assertEqual(str(value0.name), str(ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 117))))
        self.assertEqual(value0.data, 1000)
Example #19
0
    def test_getNextPduindicationForPort(self):
        oid = ObjectIdentifier(32, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 1, 1, 2, 1))
        expected_oid = ObjectIdentifier(32, 0, 0, 0, (1, 3, 6, 1, 4, 1, 9, 9, 813, 1, 1, 1, 2, 5))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut_port)
        print(response)

        n = len(response.values)
        print('values = ' + str(n))
        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.COUNTER_64)
        self.assertEqual(str(value0.name), str(expected_oid))
        self.assertEqual(value0.data, 4)
Example #20
0
    def test_getnextpdu_chassis_class(self):
        """
        Test chassis physical class
        """
        oid = ObjectIdentifier(12, 0, 0, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, 5))
        expected_oid = ObjectIdentifier(12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, 5, 1))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET_NEXT, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)

        value0 = response.values[0]
        self.assertEqual(str(value0.name), str(expected_oid))
        self.assertEqual(value0.type_, ValueType.INTEGER)
        self.assertEqual(value0.data, PhysicalClass.CHASSIS)
Example #21
0
    def test_getnextpdu_first_default(self):
        # oid.include = 1
        oid = ObjectIdentifier(10, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 24, 4, 1))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        n = len(response.values)
        # self.assertEqual(n, 7)
        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.IP_ADDRESS)
        self.assertEqual(str(value0.name), '.1.3.6.1.2.1.4.24.4.1.1.0.0.0.0.0.0.0.0.0.10.0.0.1')
        self.assertEqual(str(value0.data), ipaddress.ip_address("0.0.0.0").packed.decode())
Example #22
0
    def test_getnextpdu_exactmatch(self):
        # oid.include = 1
        oid = ObjectIdentifier(20, 0, 1, 0, (1, 3, 6, 1, 2, 1, 17, 7, 1, 2, 2, 1, 2, 1000, 124, 254, 144, 128, 159, 4))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        n = len(response.values)
        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.INTEGER)
        print("test_getnextpdu_exactmatch: ", str(oid))
        self.assertEqual(str(value0.name), str(oid))
        self.assertEqual(value0.data, 113)
Example #23
0
    def test_getnextpdu_exactmatch(self):
        # oid.include = 1
        oid = ObjectIdentifier(20, 0, 1, 0, (1, 3, 6, 1, 2, 1, 4, 22, 1, 2, 37, 10, 0, 0, 19))
        get_pdu = GetNextPDU(
            header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0),
            oids=[oid]
        )

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        n = len(response.values)
        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.OCTET_STRING)
        print("test_getnextpdu_exactmatch: ", str(oid))
        self.assertEqual(str(value0.name), str(oid))
        self.assertEqual(value0.data.string, b'\x52\x54\x00\x04\x52\x5d')
Example #24
0
    def test_no_description(self):
        """
        For a port with no description in the db the result should be ian empty string
        """
        oid = ObjectIdentifier(12, 0, 0, 0,
                               (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18, 9))
        get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0,
                                              0),
                             oids=[oid])

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.OCTET_STRING)
        self.assertEqual(
            str(value0.name),
            str(
                ObjectIdentifier(12, 0, 1, 0,
                                 (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18, 13))))
        self.assertEqual(str(value0.data), '')
    def test_low_speed(self):
        """
        For an interface with a speed inside the 32 bit counter returns the speed of the interface in bps
        """
        oid = ObjectIdentifier(11, 0, 0, 0,
                               (1, 3, 6, 1, 2, 1, 2, 2, 1, 5, 113))
        get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0,
                                              0),
                             oids=[oid])

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.GAUGE_32)
        self.assertEqual(
            str(value0.name),
            str(
                ObjectIdentifier(11, 0, 1, 0,
                                 (1, 3, 6, 1, 2, 1, 2, 2, 1, 5, 117))))
        self.assertEqual(value0.data, 1000000000)
Example #26
0
    def test_if_type_portchannel(self):
        """
        For portchannel the type shpuld be 161
        """
        oid = ObjectIdentifier(11, 0, 0, 0,
                               (1, 3, 6, 1, 2, 1, 2, 2, 1, 3, 1002))
        get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0,
                                              0),
                             oids=[oid])

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.INTEGER)
        self.assertEqual(
            str(value0.name),
            str(
                ObjectIdentifier(11, 0, 1, 0,
                                 (1, 3, 6, 1, 2, 1, 2, 2, 1, 3, 1003))))
        self.assertEqual(value0.data, 161)
Example #27
0
    def test_no_speed(self):
        """
        For a port with no speed in the db the result should be 0
        """
        oid = ObjectIdentifier(11, 0, 0, 0,
                               (1, 3, 6, 1, 2, 1, 2, 2, 1, 5, 117))
        get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0,
                                              0),
                             oids=[oid])

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.GAUGE_32)
        self.assertEqual(
            str(value0.name),
            str(
                ObjectIdentifier(11, 0, 1, 0,
                                 (1, 3, 6, 1, 2, 1, 2, 2, 1, 5, 121))))
        self.assertEqual(value0.data, 0)
Example #28
0
    def test_mgmt_iface(self):
        """
        Test that mgmt port is present in the MIB
        """
        oid = ObjectIdentifier(11, 0, 0, 0,
                               (1, 3, 6, 1, 2, 1, 2, 2, 1, 1, 10000))
        get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0,
                                              0),
                             oids=[oid])

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.INTEGER)
        self.assertEqual(
            str(value0.name),
            str(
                ObjectIdentifier(11, 0, 1, 0,
                                 (1, 3, 6, 1, 2, 1, 2, 2, 1, 1, 10001))))
        self.assertEqual(value0.data, 10000)
Example #29
0
    def test_high_speed(self):
        """
        should return the speed of the interface
        """
        oid = ObjectIdentifier(12, 0, 0, 0,
                               (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 1))
        get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0,
                                              0),
                             oids=[oid])

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.GAUGE_32)
        self.assertEqual(
            str(value0.name),
            str(
                ObjectIdentifier(12, 0, 1, 0,
                                 (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 15, 5))))
        self.assertEqual(value0.data, 100000)
Example #30
0
    def test_vlan_iface_ifMIB(self):
        """
        Test that vlan interface is present in the ifMIB OID path of the MIB
        """
        oid = ObjectIdentifier(12, 0, 0, 0,
                               (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18, 2999))
        get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0,
                                              0),
                             oids=[oid])

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.OCTET_STRING)
        self.assertEqual(
            str(value0.name),
            str(
                ObjectIdentifier(12, 0, 1, 0,
                                 (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 18, 3000))))
        self.assertEqual(str(value0.data), 'Vlan1000')
Example #31
0
    def test_getnextpdu_firstifindex(self):
        # oid.include = 1
        oid = ObjectIdentifier(9, 0, 1, 0, (1, 3, 6, 1, 2, 1, 2, 2, 1))
        get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0,
                                              0),
                             oids=[oid])

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        n = len(response.values)
        # self.assertEqual(n, 7)
        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.INTEGER)
        print("test_getnextpdu_exactmatch: ", str(oid))
        self.assertEqual(
            str(value0.name),
            str(
                ObjectIdentifier(11, 0, 1, 0,
                                 (1, 3, 6, 1, 2, 1, 2, 2, 1, 1, 1))))
        self.assertEqual(value0.data, 0)
Example #32
0
    def _check_getpdu(self, sub_id, expected_mib):
        oids = [
            ObjectIdentifier(
                12, 0, 1, 0,
                (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, field_sub_id, sub_id))
            for field_sub_id in expected_mib
        ]

        get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0,
                                              0),
                             oids=oids)

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)

        for mib_key, value in zip(expected_mib, response.values):
            expected_oid = ObjectIdentifier(
                12, 0, 1, 0,
                (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, mib_key, sub_id))
            expected_type, expected_value = expected_mib[mib_key]
            self.assertEqual(str(value.name), str(expected_oid))
            self.assertEqual(value.type_, expected_type)
            self.assertEqual(str(value.data), str(expected_value))
Example #33
0
    def test_getnextpdu_eth2(self):
        # oid.include = 1
        oid = ObjectIdentifier(12, 0, 1, 0,
                               (1, 0, 8802, 1, 1, 2, 1, 4, 1, 1, 7, 5))
        get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0,
                                              0),
                             oids=[oid])

        print("GetNextPDU sr=", get_pdu.sr)
        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)
        print(response)

        n = len(response.values)
        # self.assertEqual(n, 7)
        value0 = response.values[0]
        self.assertEqual(value0.type_, ValueType.OCTET_STRING)
        print("test_getnextpdu_exactmatch: ", str(oid))
        self.assertEqual(
            str(value0.name),
            str(
                ObjectIdentifier(11, 0, 1, 0,
                                 (1, 0, 8802, 1, 1, 2, 1, 4, 1, 1, 7, 5))))
        self.assertEqual(str(value0.data), "Ethernet2")
Example #34
0
    def test_getpdu_xcvr_dom(self):
        expected_mib = {
            get_transceiver_sensor_sub_id(1, 'temperature')[0]:
            "DOM Temperature Sensor for etp1",
            get_transceiver_sensor_sub_id(1, 'voltage')[0]:
            "DOM Voltage Sensor for etp1",
            get_transceiver_sensor_sub_id(1, 'rx1power')[0]:
            "DOM RX Power Sensor for etp1/1",
            get_transceiver_sensor_sub_id(1, 'rx2power')[0]:
            "DOM RX Power Sensor for etp1/2",
            get_transceiver_sensor_sub_id(1, 'rx3power')[0]:
            "DOM RX Power Sensor for etp1/3",
            get_transceiver_sensor_sub_id(1, 'rx4power')[0]:
            "DOM RX Power Sensor for etp1/4",
            get_transceiver_sensor_sub_id(1, 'tx1bias')[0]:
            "DOM TX Bias Sensor for etp1/1",
            get_transceiver_sensor_sub_id(1, 'tx2bias')[0]:
            "DOM TX Bias Sensor for etp1/2",
            get_transceiver_sensor_sub_id(1, 'tx3bias')[0]:
            "DOM TX Bias Sensor for etp1/3",
            get_transceiver_sensor_sub_id(1, 'tx4bias')[0]:
            "DOM TX Bias Sensor for etp1/4",
            get_transceiver_sensor_sub_id(1, 'tx1power')[0]:
            "DOM TX Power Sensor for etp1/1",
            get_transceiver_sensor_sub_id(1, 'tx2power')[0]:
            "DOM TX Power Sensor for etp1/2",
            get_transceiver_sensor_sub_id(1, 'tx3power')[0]:
            "DOM TX Power Sensor for etp1/3",
            get_transceiver_sensor_sub_id(1, 'tx4power')[0]:
            "DOM TX Power Sensor for etp1/4",
        }

        phyDescr, phyClass = 2, 5

        # check physical class value
        oids = [
            ObjectIdentifier(
                12, 0, 1, 0,
                (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, field_id, sub_id))
            for field_id in (phyDescr, phyClass) for sub_id in expected_mib
        ]

        get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0,
                                              0),
                             oids=oids)

        encoded = get_pdu.encode()
        response = get_pdu.make_response(self.lut)

        for mib_key, value in zip(expected_mib, response.values):
            if phyClass == value.name.subids[-2]:
                sub_id = (phyClass, mib_key)
                expected_type, expected_value = ValueType.INTEGER, PhysicalClass.SENSOR
            elif phyDescr == value.name.subids[-2]:
                sub_id = (phyDescr, mib_key)
                expected_type, expected_value = ValueType.OCTET_STRING, expected_mib[
                    mib_key]
            else:
                # received unexpected
                self.assertTrue(False)

            expected_oid = ObjectIdentifier(
                12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, *sub_id))
            self.assertEqual(str(value.name), str(expected_oid))
            self.assertEqual(value.type_, expected_type)
            self.assertEqual(str(value.data), str(expected_value))