예제 #1
0
def test_port_stats(ixia: IxeApp, locations: List[str]) -> None:
    """ Test port statistics. """
    print(test_port_stats.__doc__)

    ixia.session.reserve_ports(locations, force=True)
    cfg1 = Path(__file__).parent.joinpath('configs/test_config_1.prt')
    cfg2 = Path(__file__).parent.joinpath('configs/test_config_2.prt')
    _load_configs(ixia, cfg1, cfg2)

    port1 = locations[0]
    port2 = locations[1]

    ixia.session.start_transmit()
    port_stats = IxePortsStats()
    port_stats.read_stats()
    print(json.dumps(port_stats.statistics, indent=1, sort_keys=True))
    assert port_stats.statistics[port1]['framesSent'] > 0
    assert port_stats.statistics[port2]['framesSent_rate'] > 0
    ixia.session.stop_transmit()

    ixia.session.ports[port1].start_transmit()
    time.sleep(8)
    ixia.session.ports[port1].stop_transmit()
    time.sleep(1)
    port1_stats = ixia.session.ports[port1].read_stats('framesSent',
                                                       'framesReceived')
    print(json.dumps(port1_stats, indent=1))
    assert port1_stats['framesSent'] > 0
    assert port1_stats['framesSent_rate'] == 0
예제 #2
0
 def get_all_ports_stats(self):
     self._logger.info(self._get_tg_log_title(), self._get_tg_log_message(),
                       True)
     super(self.__class__, self).get_all_ports_stats()
     stats = IxePortsStats(self._connector.session)
     stats.read_stats()
     for port in self.ports:
         stats_message = ""
         self.ports[port]._update_port_stats(stats)
         stats_message += "{}".format(str(self.ports[port].statistics))
         self._logger.info(port, stats_message)
     self._logger.info("end_level", "end_level")
     return stats.statistics
예제 #3
0
    def testPortStats(self):
        cfg1 = path.join(path.dirname(__file__), 'configs/stats_config_1.prt')
        cfg2 = path.join(path.dirname(__file__), 'configs/stats_config_2.prt')
        self._reserver_and_load(cfg1, cfg2)

        self.ixia.session.start_transmit()
        port_stats = IxePortsStats(self.ixia.session)
        port_stats.read_stats()
        print(json.dumps(port_stats.statistics, indent=1, sort_keys=True))
        assert(port_stats.statistics[self.port1]['framesSent'] > 0)
        assert(port_stats.statistics[self.port2]['framesSent_rate'] > 0)
        self.ixia.session.stop_transmit()

        self.ports[self.port1].start_transmit()
        time.sleep(4)
        self.ports[self.port1].stop_transmit()
        port1_stats = self.ports[self.port1].read_stats('framesSent', 'framesReceived')
        print(json.dumps(port1_stats, indent=1))
        assert(port1_stats['framesSent'] > 0)
        assert(port1_stats['framesSent_rate'] == 0)
예제 #4
0
    def test_clear_all_stats(self):

        stats = self._config_and_run_stream_stats_test(rx_ports=[])

        assert(stats[str(self.ports[self.port1].streams[1])]['tx']['framesSent'] == 1)
        assert(stats[str(self.ports[self.port1].streams[1])]['rx'][str(self.ports[self.port2])]['totalFrames'] == 1)
        assert(stats[str(self.ports[self.port2].streams[2])]['tx']['framesSent'] == 4)
        assert(stats[str(self.ports[self.port2].streams[2])]['rx'][str(self.ports[self.port1])]['totalFrames'] == 4)

        port_stats = IxePortsStats(self.ixia.session)
        stream_stats = IxeStreamsStats(self.ixia.session)

        port_stats.read_stats('framesSent')
        print(json.dumps(port_stats.statistics, indent=1, sort_keys=True))
        assert(port_stats.statistics[str(self.ports[self.port1])]['framesSent'] == 3)
        assert(port_stats.statistics[str(self.ports[self.port2])]['framesSent'] == 7)

        self.ports[self.port1].clear_port_stats()
        time.sleep(2)
        port_stats.read_stats('framesSent')
        print(json.dumps(port_stats.statistics, indent=1, sort_keys=True))
        assert(port_stats.statistics[str(self.ports[self.port1])]['framesSent'] == 0)
        assert(port_stats.statistics[str(self.ports[self.port2])]['framesSent'] == 7)
        stream_stats.read_stats('totalFrames')
        print(json.dumps(stream_stats.statistics, indent=1, sort_keys=True))
        assert(stream_stats.statistics[str(self.ports[self.port1].streams[1])]['tx']['framesSent'] == 0)
        assert(stream_stats.statistics[str(self.ports[self.port1].streams[1])]['rx'][str(self.ports[self.port2])]['totalFrames'] == 1)  # noqa
        assert(stream_stats.statistics[str(self.ports[self.port2].streams[2])]['tx']['framesSent'] == 4)
        assert(stream_stats.statistics[str(self.ports[self.port2].streams[2])]['rx'][str(self.ports[self.port1])]['totalFrames'] == -1)  # noqa

        self.ixia.session.clear_all_stats()
        time.sleep(2)
        port_stats.read_stats('framesSent')
        print(json.dumps(port_stats.statistics, indent=1, sort_keys=True))
        assert(port_stats.statistics[str(self.ports[self.port1])]['framesSent'] == 0)
        assert(port_stats.statistics[str(self.ports[self.port2])]['framesSent'] == 0)
        stream_stats.read_stats('totalFrames')
        print(json.dumps(stream_stats.statistics, indent=1, sort_keys=True))
        assert(stream_stats.statistics[str(self.ports[self.port1].streams[1])]['tx']['framesSent'] == 0)
        assert(stream_stats.statistics[str(self.ports[self.port1].streams[1])]['rx'][str(self.ports[self.port2])]['totalFrames'] == -1)  # noqa
        assert(stream_stats.statistics[str(self.ports[self.port2].streams[2])]['tx']['framesSent'] == 0)
        assert(stream_stats.statistics[str(self.ports[self.port2].streams[2])]['rx'][str(self.ports[self.port1])]['totalFrames'] == -1)  # noqa
예제 #5
0
 def read_stats(self, *stats):
     return IxePortsStats(self.session, self).read_stats(*stats).values()[0]
예제 #6
0
 def read_stats(self, *stats):
     return IxePortsStats(self.session, self).read_stats(*stats)[str(self)]
예제 #7
0
def test_clear_all_stats(ixia: IxeApp, locations: List[str]) -> None:

    port1 = locations[0]
    port2 = locations[1]

    stats = _config_and_run_stream_stats_test(ixia, locations, rx_ports=[])

    assert stats[str(
        ixia.session.ports[port1].streams[1])]['tx']['framesSent'] == 1
    assert stats[str(ixia.session.ports[port1].streams[1])]['rx'][str(
        ixia.session.ports[port2])]['totalFrames'] == 1
    assert stats[str(
        ixia.session.ports[port2].streams[2])]['tx']['framesSent'] == 4
    assert stats[str(ixia.session.ports[port2].streams[2])]['rx'][str(
        ixia.session.ports[port1])]['totalFrames'] == 4

    port_stats = IxePortsStats(ixia.session)
    stream_stats = IxeStreamsStats(ixia.session)

    port_stats.read_stats('framesSent')
    print(json.dumps(port_stats.statistics, indent=1, sort_keys=True))
    assert port_stats.statistics[str(
        ixia.session.ports[port1])]['framesSent'] == 3
    assert port_stats.statistics[str(
        ixia.session.ports[port2])]['framesSent'] == 7

    ixia.session.ports[port1].clear_port_stats()
    time.sleep(2)
    port_stats.read_stats('framesSent')
    print(json.dumps(port_stats.statistics, indent=1, sort_keys=True))
    assert port_stats.statistics[str(
        ixia.session.ports[port1])]['framesSent'] == 0
    assert port_stats.statistics[str(
        ixia.session.ports[port2])]['framesSent'] == 7
    stream_stats.read_stats('totalFrames')
    print(json.dumps(stream_stats.statistics, indent=1, sort_keys=True))
    stream_1_rx = stream_stats.statistics[str(
        ixia.session.ports[port1].streams[1])]['rx']
    assert stream_stats.statistics[str(
        ixia.session.ports[port1].streams[1])]['tx']['framesSent'] == 0
    assert stream_1_rx[str(
        ixia.session.ports[port2])]['totalFrames'] == 1  # noqa
    assert stream_stats.statistics[str(
        ixia.session.ports[port2].streams[2])]['tx']['framesSent'] == 4
    assert stream_1_rx[str(
        ixia.session.ports[port1])]['totalFrames'] == -1  # noqa

    ixia.session.clear_all_stats()
    time.sleep(2)
    port_stats.read_stats('framesSent')
    print(json.dumps(port_stats.statistics, indent=1, sort_keys=True))
    assert port_stats.statistics[str(
        ixia.session.ports[port1])]['framesSent'] == 0
    assert port_stats.statistics[str(
        ixia.session.ports[port2])]['framesSent'] == 0
    stream_stats.read_stats('totalFrames')
    print(json.dumps(stream_stats.statistics, indent=1, sort_keys=True))
    assert stream_stats.statistics[str(
        ixia.session.ports[port1].streams[1])]['tx']['framesSent'] == 0
    assert stream_stats.statistics[str(
        ixia.session.ports[port1].streams[1])]['rx'][str(
            ixia.session.ports[port2])]['totalFrames'] == -1  # noqa
    assert stream_stats.statistics[str(
        ixia.session.ports[port2].streams[2])]['tx']['framesSent'] == 0
    assert stream_stats.statistics[str(
        ixia.session.ports[port2].streams[2])]['rx'][str(
            ixia.session.ports[port1])]['totalFrames'] == -1  # noqa