diff options
author | Martin Klozik <martinx.klozik@intel.com> | 2015-10-13 06:35:33 +0100 |
---|---|---|
committer | Maryam Tahhan <maryam.tahhan@intel.com> | 2015-10-21 13:59:21 +0000 |
commit | 3572d56f5733592db30f0df2273fe93e731cba2d (patch) | |
tree | c3e8d9a497e22a2138e24dcdc6fefd831f90a592 /core/vswitch_controller_p2p.py | |
parent | ba33eda4f9ad307178668c2634de6bec1c53a0d3 (diff) |
Flow Classification extension
Flow definition can be changed by testcase setup. By default
only ingress ports are used to route traffic, but flow can be
extended by src and dst IP addresses used by the traffic
generator.
Change-Id: I694714537ad2d818192a39f3235d8e6bf0f59a49
JIRA: VSPERF-90
Signed-off-by: Martin Klozik <martinx.klozik@intel.com>
Reviewed-by: Billy O Mahony <billy.o.mahony@intel.com>
Reviewed-by: Maryam Tahhan <maryam.tahhan@intel.com>
Reviewed-by: Fatih Degirmenci <fatih.degirmenci@ericsson.com>
Reviewed-by: Gene Snider <eugene.snider@huawei.com>
Reviewed-by: Al Morton <acmorton@att.com>
Reviewed-by: Tv Rao <tv.rao@freescale.com>
Reviewed-by: Brian Castelli <brian.castelli@spirent.com>
Diffstat (limited to 'core/vswitch_controller_p2p.py')
-rw-r--r-- | core/vswitch_controller_p2p.py | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/core/vswitch_controller_p2p.py b/core/vswitch_controller_p2p.py index 35600e1b..236a443a 100644 --- a/core/vswitch_controller_p2p.py +++ b/core/vswitch_controller_p2p.py @@ -33,7 +33,7 @@ class VswitchControllerP2P(IVswitchController): _deployment_scenario: A string describing the scenario to set-up in the constructor. """ - def __init__(self, vswitch_class): + def __init__(self, vswitch_class, traffic): """Initializes up the prerequisites for the P2P deployment scenario. :vswitch_class: the vSwitch class to be used. @@ -43,6 +43,7 @@ class VswitchControllerP2P(IVswitchController): self._vswitch = vswitch_class() self._deployment_scenario = "P2P" self._logger.debug('Creation using ' + str(self._vswitch_class)) + self._traffic = traffic.copy() def setup(self): """Sets up the switch for p2p. @@ -67,13 +68,22 @@ class VswitchControllerP2P(IVswitchController): # table#1 - flows to route packets between ports goes here. The # chosen port is communicated to subsequent tables by setting the # metadata value to the egress port number - flow = {'table':'1', 'priority':'1', 'in_port':'1', - 'actions': ['write_actions(output:2)', 'write_metadata:2', - 'goto_table:2']} + + # configure flows according to the TC definition + flow_template = _FLOW_TEMPLATE.copy() + if self._traffic['flow_type'] == 'IP': + flow_template.update({'dl_type':'0x0800', 'nw_src':self._traffic['l3']['srcip'], + 'nw_dst':self._traffic['l3']['dstip']}) + + flow = flow_template.copy() + flow.update({'table':'1', 'priority':'1', 'in_port':'1', + 'actions': ['write_actions(output:2)', 'write_metadata:2', + 'goto_table:2']}) self._vswitch.add_flow(bridge, flow) - flow = {'table':'1', 'priority':'1', 'in_port':'2', - 'actions': ['write_actions(output:1)', 'write_metadata:1', - 'goto_table:2']} + flow = flow_template.copy() + flow.update({'table':'1', 'priority':'1', 'in_port':'2', + 'actions': ['write_actions(output:1)', 'write_metadata:1', + 'goto_table:2']}) self._vswitch.add_flow(bridge, flow) # Frame modification table. Frame modification flow rules are |