2 Provision 3800 Object Definition
3 Authors: james.luhrsen@hp.com
9 from robot.libraries.BuiltIn import BuiltIn
10 from BaseSwitch import *
12 class Ovs(BaseSwitch):
24 mgmt_password = 'mininet'
29 initialization_type = 'cleanup'
32 def connection_configs(self):
37 def cleanup_cmds(self):
39 ['/sbin/ifconfig | egrep \'^s\' | awk \'{print \"sudo ovs-vsctl del-br\",$1}\' | sh']
42 def initialization_cmds(self):
47 def base_openflow_config(self):
49 ['sudo ovs-vsctl add-br s1', \
50 'sudo ovs-vsctl set bridge s1 protocols=OpenFlow13', \
51 'sudo ovs-vsctl set-controller s1 tcp:' + self.of_controller_ip]
54 def openflow_validation_cmd(self):
59 def openflow_enable_config(self):
61 ['sudo ovs-vsctl set-controller s1 tcp:' + self.of_controller_ip]
64 def openflow_enable_validations(self):
66 ['is_connected: true']
68 invalid_of_controller_ip = '1.1.1.1'
70 def openflow_disable_config(self):
72 ['sudo ovs-vsctl set-controller s1 tcp:' + self.invalid_of_controller_ip]
75 def openflow_disable_validations(self):
80 def dump_all_flows(self):
82 'sudo /usr/bin/ovs-ofctl dump-flows s1 -O OpenFlow13'
85 def flow_validations(self):
87 ['dl_src=' + self.src_mac + \
88 ',dl_dst=' + self.dst_mac + \
89 ',nw_src=' + self.ip_src + \
90 ',nw_dst=' + self.ip_dst + \
91 ' actions=' + self.action, \
92 'table=' + self.table_id]
94 def create_flow_match_elements(self, flow_xml):
95 super(Ovs, self).create_flow_match_elements(flow_xml)
96 if (self.action == 'INPORT'):
97 self.action = 'IN_PORT'
100 def datapath_id_output_command(self):
102 '/sbin/ifconfig | egrep \'^s1\' | awk \'{print $5}\''
104 datapath_id_output_string = ''
107 def update_datapath_id(self):
108 if not self.datapath_id_output_string:
109 self.datapath_id = 'unknown'
112 datapath_id_hex = re.sub(':', '', self.datapath_id_output_string)
113 self.datapath_id = self.convert_hex_to_decimal_as_string(datapath_id_hex)