def _delete_linux_bridge(self, qbr_name): try: # delete linux bridge qbrxxx host_network.ip_link_set_dev(self._session, qbr_name, 'down') host_network.brctl_del_br(self._session, qbr_name) except Exception: LOG.debug("Fail to delete linux bridge %s", qbr_name)
def _create_veth_pair(self, dev1_name, dev2_name): """Create a pair of veth devices with the specified names, deleting any previous devices with those names. """ LOG.debug("Create veth pair, port1:%(qvb)s, port2:%(qvo)s", {'qvb': dev1_name, 'qvo': dev2_name}) for dev in [dev1_name, dev2_name]: self._delete_net_dev(dev) host_network.ip_link_add_veth_pair(self._session, dev1_name, dev2_name) for dev in [dev1_name, dev2_name]: host_network.ip_link_set_dev(self._session, dev, 'up') host_network.ip_link_set_promisc(self._session, dev, 'on')
def _create_linux_bridge(self, vif_rec): """create a qbr linux bridge for neutron security group """ iface_id = vif_rec['other_config']['neutron-port-id'] linux_br_name = self._get_qbr_name(iface_id) if not self._device_exists(linux_br_name): LOG.debug("Create linux bridge %s", linux_br_name) host_network.brctl_add_br(self._session, linux_br_name) host_network.brctl_set_fd(self._session, linux_br_name, '0') host_network.brctl_set_stp(self._session, linux_br_name, 'off') host_network.ip_link_set_dev(self._session, linux_br_name, 'up') qvb_name, qvo_name = self._get_veth_pair_names(iface_id) if not self._device_exists(qvo_name): self._create_veth_pair(qvb_name, qvo_name) host_network.brctl_add_if(self._session, linux_br_name, qvb_name) host_network.ovs_create_port( self._session, CONF.xenserver.ovs_integration_bridge, qvo_name, iface_id, vif_rec['MAC'], 'active') return linux_br_name