Ejemplo n.º 1
0
 def _tear_down_network(self, router, instance, network_info):
     for vif in network_info:
         try:
             iface = FLAGS.data_iface
             udp_attrs = vif['meta']['quantum_udp_attrs']
             port_attrs = vif['meta']['quantum_port_attrs']
             adapter = router.slot[port_attrs['slot-id']]
             (dynint, dynport) = nio.interfaces_mips2dyn[port_attrs['port-id']]
             adapter.disconnect(dynint, dynport)
             adapter.delete_nio(dynint, dynport)
             delete_alias(
                 iface,
                 self._withmask(
                     udp_attrs['src-address'], udp_attrs['prefix-len']),
                 label=self._mklabel(udp_attrs['src-address']))
         except Exception as e:
             LOG.error("Can not deallocate vif %s" % vif, e)
Ejemplo n.º 2
0
 def _tear_down_network(self, router, instance, network_info):
     for vif in network_info:
         try:
             iface = FLAGS.data_iface
             udp_attrs = vif['meta']['quantum_udp_attrs']
             port_attrs = vif['meta']['quantum_port_attrs']
             adapter = router.slot[port_attrs['slot-id']]
             (dynint,
              dynport) = nio.interfaces_mips2dyn[port_attrs['port-id']]
             adapter.disconnect(dynint, dynport)
             adapter.delete_nio(dynint, dynport)
             delete_alias(iface,
                          self._withmask(udp_attrs['src-address'],
                                         udp_attrs['prefix-len']),
                          label=self._mklabel(udp_attrs['src-address']))
         except Exception as e:
             LOG.error("Can not deallocate vif %s" % vif, e)
Ejemplo n.º 3
0
    def _setup_network(self, context, router, instance, network_info):
        for vif in network_info:
            iface = FLAGS.data_iface
            udp_attrs = vif['meta']['quantum_udp_attrs']
            port_attrs = vif['meta']['quantum_port_attrs']
            on_same_machine = udp_attrs['dst-address'] in list_addresses(iface)
            LOG.debug("UDP attrs are %s, addresses are %s, on_same_machine is %s" % (udp_attrs, list_addresses(iface), on_same_machine))

            add_alias(
                iface,
                self._withmask(
                    udp_attrs['src-address'], udp_attrs['prefix-len']),
                label=self._mklabel(udp_attrs['src-address']))
            if on_same_machine:
                delete_alias(
                    iface,
                    self._withmask(
                        udp_attrs['dst-address'], udp_attrs['prefix-len']),
                    label=self._mklabel(udp_attrs['dst-address']))
            adapter = router.slot[port_attrs['slot-id']]
            if not adapter:
                model = port_attrs['slot-model']
                if model:
                    class_ = getattr(dynamips_lib, model.replace('-', '_'))
                    adapter = class_(router, port_attrs['slot-id'])
                    router.slot[port_attrs['slot-id']] = adapter
                else:
                    LOG.error("Errant vif: %s" % vif)
                    raise Exception("Expected slot model to be defined")
            LOG.debug("Creating nio to %s, addresses are %s" % (udp_attrs['dst-address'], list_addresses(iface)))
            nio = NIO_udp(
                self.dynamips,
                udp_attrs['src-port'],
                udp_attrs['dst-address'],
                udp_attrs['dst-port'],
                adapter=adapter,
                port=port_attrs['port-id'])
            adapter.nio(port_attrs['port-id'], nio)
            if on_same_machine:
                add_alias(
                    iface,
                    self._withmask(
                        udp_attrs['dst-address'], udp_attrs['prefix-len']),
                    label=self._mklabel(udp_attrs['dst-address']))
Ejemplo n.º 4
0
    def _setup_network(self, context, router, instance, network_info):
        for vif in network_info:
            iface = FLAGS.data_iface
            udp_attrs = vif['meta']['quantum_udp_attrs']
            port_attrs = vif['meta']['quantum_port_attrs']
            on_same_machine = udp_attrs['dst-address'] in list_addresses(iface)
            LOG.debug(
                "UDP attrs are %s, addresses are %s, on_same_machine is %s" %
                (udp_attrs, list_addresses(iface), on_same_machine))

            add_alias(iface,
                      self._withmask(udp_attrs['src-address'],
                                     udp_attrs['prefix-len']),
                      label=self._mklabel(udp_attrs['src-address']))
            if on_same_machine:
                delete_alias(iface,
                             self._withmask(udp_attrs['dst-address'],
                                            udp_attrs['prefix-len']),
                             label=self._mklabel(udp_attrs['dst-address']))
            adapter = router.slot[port_attrs['slot-id']]
            if not adapter:
                model = port_attrs['slot-model']
                if model:
                    class_ = getattr(dynamips_lib, model.replace('-', '_'))
                    adapter = class_(router, port_attrs['slot-id'])
                    router.slot[port_attrs['slot-id']] = adapter
                else:
                    LOG.error("Errant vif: %s" % vif)
                    raise Exception("Expected slot model to be defined")
            LOG.debug("Creating nio to %s, addresses are %s" %
                      (udp_attrs['dst-address'], list_addresses(iface)))
            nio = NIO_udp(self.dynamips,
                          udp_attrs['src-port'],
                          udp_attrs['dst-address'],
                          udp_attrs['dst-port'],
                          adapter=adapter,
                          port=port_attrs['port-id'])
            adapter.nio(port_attrs['port-id'], nio)
            if on_same_machine:
                add_alias(iface,
                          self._withmask(udp_attrs['dst-address'],
                                         udp_attrs['prefix-len']),
                          label=self._mklabel(udp_attrs['dst-address']))