TRAFFICGEN_XENA_2544_TPUT_USEPASS_THRESHHOLD = 'false'
TRAFFICGEN_XENA_2544_TPUT_PASS_THRESHHOLD = '0.0'
+# Xena Continuous traffic options
+# Please reference xena documentation before making changes to these settings
+TRAFFICGEN_XENA_CONT_PORT_LEARNING_ENABLED = True
+TRAFFICGEN_XENA_CONT_PORT_LEARNING_DURATION = 3
+
# Xena Configuration -- END
###########################
TRAFFICGEN_XENA_2544_TPUT_USEPASS_THRESHHOLD = 'false'
TRAFFICGEN_XENA_2544_TPUT_PASS_THRESHHOLD = '0.0'
+# Xena Continuous traffic options
+# Please reference xena documentation before making changes to these settings
+TRAFFICGEN_XENA_CONT_PORT_LEARNING_ENABLED = True
+TRAFFICGEN_XENA_CONT_PORT_LEARNING_DURATION = 3
+
###################################################
# MoonGen Configuration and Connection Info-- BEGIN
Xena documentation to understand the behavior changes in modifying these
values.
+Continuous Traffic Testing
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Xena continuous traffic by default does a 3 second learning preemption to allow
+the DUT to receive learning packets before a continuous test is performed. If
+a custom test case requires this learning be disabled, you can disable the option
+or modify the length of the learning by modifying the following settings.
+
+.. code-block:: console
+
+ TRAFFICGEN_XENA_CONT_PORT_LEARNING_ENABLED = False
+ TRAFFICGEN_XENA_CONT_PORT_LEARNING_DURATION = 3
+
MoonGen
-------
CMD_OWNER = 'c_owner'
CMD_PORT = ';Port:'
CMD_PORT_IP = 'p_ipaddress'
+CMD_PORT_LEARNING = 'p_autotrain'
CMD_RESERVE = 'p_reservation reserve'
CMD_RELEASE = 'p_reservation release'
CMD_RELINQUISH = 'p_reservation relinquish'
"on" if on else "off"), self)
return self._manager.driver.ask_verify(command)
+ def set_port_learning(self, interval):
+ """Start port learning with the interval in seconds specified. 0 disables port learning
+ :param: interval as int
+ :return: Boolean True if response OK, False if error.
+ """
+ command = make_port_command('{} {}'.format(CMD_PORT_LEARNING, interval), self)
+ return self._manager.driver.ask_verify(command)
+
def set_port_ip(self, ip_addr, cidr, gateway, wild='255'):
"""
Set the port ip address of the specific port
# Clear port configuration for a clean start
self.xmanager.ports[0].reset_port()
self.xmanager.ports[1].reset_port()
+ if settings.getValue('TRAFFICGEN_XENA_CONT_PORT_LEARNING_ENABLED'):
+ # turn on port learning
+ self.xmanager.ports[0].set_port_learning(1)
+ self.xmanager.ports[1].set_port_learning(1)
+ sleep(settings.getValue('TRAFFICGEN_XENA_CONT_PORT_LEARNING_DURATION'))
+ # turn off port learning
+ self.xmanager.ports[0].set_port_learning(0)
+ self.xmanager.ports[1].set_port_learning(0)
+ sleep(1)
self.xmanager.ports[0].clear_stats()
self.xmanager.ports[1].clear_stats()