2 Provision 3800 Object Definition
3 Authors: james.luhrsen@hp.com
7 from BaseSwitch import * # noqa
10 class Ovs(BaseSwitch):
22 mgmt_password = 'mininet'
26 initialization_type = 'cleanup'
29 def connection_configs(self):
33 def cleanup_cmds(self):
34 return ['/sbin/ifconfig | egrep \'^s\' | awk \'{print \"sudo ovs-vsctl del-br\",$1}\' | sh']
37 def initialization_cmds(self):
38 return [self.cleanup_cmds]
41 def base_openflow_config(self):
42 return ['sudo ovs-vsctl add-br s1',
43 'sudo ovs-vsctl set bridge s1 protocols=OpenFlow13',
44 'sudo ovs-vsctl set-controller s1 tcp:' + self.of_controller_ip]
47 def openflow_validation_cmd(self):
48 return 'sudo ovs-vsctl show'
51 def openflow_enable_config(self):
52 return ['sudo ovs-vsctl set-controller s1 tcp:' + self.of_controller_ip]
55 def openflow_enable_validations(self):
56 return ['is_connected: true']
58 invalid_of_controller_ip = '1.1.1.1'
61 def openflow_disable_config(self):
62 return ['sudo ovs-vsctl set-controller s1 tcp:' + self.invalid_of_controller_ip]
65 def openflow_disable_validations(self):
69 def dump_all_flows(self):
70 return 'sudo /usr/bin/ovs-ofctl dump-flows s1 -O OpenFlow13'
73 def flow_validations(self):
74 return ['dl_src=' + self.src_mac +
75 ',dl_dst=' + self.dst_mac +
76 ',nw_src=' + self.ip_src +
77 ',nw_dst=' + self.ip_dst +
78 ' actions=' + self.action,
79 'table=' + self.table_id]
81 def create_flow_match_elements(self, flow_xml):
82 super(Ovs, self).create_flow_match_elements(flow_xml)
83 if (self.action == 'INPORT'):
84 self.action = 'IN_PORT'
87 def datapath_id_output_command(self):
88 return '/sbin/ifconfig | egrep \'^s1\' | awk \'{print $5}\''
90 datapath_id_output_string = ''
93 def update_datapath_id(self):
94 if not self.datapath_id_output_string:
95 self.datapath_id = 'unknown'
98 datapath_id_hex = re.sub(':', '', self.datapath_id_output_string)
99 self.datapath_id = self.convert_hex_to_decimal_as_string(datapath_id_hex)