Beispiel #1
0
 def __init__(self, true_io_worker):
     self.true_io_worker = true_io_worker
     self.client_info = true_io_worker.socket.getsockname()
     self.json_worker = JSONIOWorker(true_io_worker,
                                     on_json_received=self._on_receive)
     self.id2socket = {}
     self.log = logging.getLogger("sockdemux")
Beispiel #2
0
class SyncIODelegate(object):
    def __init__(self, io_master, socket):
        self.io_master = io_master
        self.io_worker = JSONIOWorker(self.io_master.create_worker_for_socket(socket))

    def wait_for_message(self):
        self.io_master.select(None)

    def send(self, msg):
        self.io_worker.send(msg)

    def get_on_message_received(self):
        return self.io_worker.on_json_received

    def set_on_message_received(self, f):
        self.io_worker.on_json_received = lambda io_worker, msg: f(msg)

    on_message_received = property(get_on_message_received, set_on_message_received)
Beispiel #3
0
 def __init__(self, create_io_worker):
     super(OVSControllerPatchPanel, self).__init__(create_io_worker)
     # Boot up POX.
     args = str(
         """./pox.py openflow.of_01 --address=127.0.0.1 --port=%d"""
         """         messenger.messenger --tcp_address=127.0.0.1 --tcp_port=%d """
         """         sts_of_forwarder.sts_of_forwarder """ %
         (self.of_port, self.messenger_port)).split()
     self.pox = subprocess.Popen(args,
                                 cwd="./pox/",
                                 preexec_fn=lambda: os.setsid())
     # Establish connection with POX messenger component.
     true_socket = connect_socket_with_backoff(address="127.0.0.1",
                                               port=self.messenger_port)
     self.json_worker = JSONIOWorker(create_io_worker(true_socket))
     # Send the handshake.
     self.json_worker.send({"sts_connection": ""})
     self._initialize_switch()
Beispiel #4
0
class SyncIODelegate(object):
    def __init__(self, io_master, socket):
        self.io_master = io_master
        self.io_worker = JSONIOWorker(
            self.io_master.create_worker_for_socket(socket))

    def wait_for_message(self):
        self.io_master.select(None)

    def send(self, msg):
        self.io_worker.send(msg)

    def get_on_message_received(self):
        return self.io_worker.on_json_received

    def set_on_message_received(self, f):
        self.io_worker.on_json_received = lambda io_worker, msg: f(msg)

    on_message_received = property(get_on_message_received,
                                   set_on_message_received)
class OVSControllerPatchPanel(ControllerPatchPanel):
  ''' Uses OVS to route between controllers. '''
  of_port = 8765
  messenger_port = 9876

  def __init__(self, create_io_worker):
    super(OVSControllerPatchPanel, self).__init__(create_io_worker)
    # Boot up POX.
    args = str("""./pox.py openflow.of_01 --address=127.0.0.1 --port=%d"""
               """         messenger.messenger --tcp_address=127.0.0.1 --tcp_port=%d """
               """         sts_of_forwarder.sts_of_forwarder """ %
               (self.of_port, self.messenger_port)).split()
    self.pox = subprocess.Popen(args, cwd="./pox/", preexec_fn=lambda: os.setsid())
    # Establish connection with POX messenger component.
    true_socket = connect_socket_with_backoff(address="127.0.0.1",
                                              port=self.messenger_port)
    self.json_worker = JSONIOWorker(create_io_worker(true_socket))
    # Send the handshake.
    self.json_worker.send({"sts_connection": ""})
    self._initialize_switch()

  def _send_command(self, command):
    b64_pkt = base64_encode(command)
    self.json_worker.send(b64_pkt)

  def _create_port_for_controller(self, guest_eth_addr, host_device):
    raise NotImplementedError("")

  def clean_up(self):
    self.json_worker.close()
    self.pox.kill()
Beispiel #6
0
class OVSControllerPatchPanel(ControllerPatchPanel):
    ''' Uses OVS to route between controllers. '''
    of_port = 8765
    messenger_port = 9876

    def __init__(self, create_io_worker):
        super(OVSControllerPatchPanel, self).__init__(create_io_worker)
        # Boot up POX.
        args = str(
            """./pox.py openflow.of_01 --address=127.0.0.1 --port=%d"""
            """         messenger.messenger --tcp_address=127.0.0.1 --tcp_port=%d """
            """         sts_of_forwarder.sts_of_forwarder """ %
            (self.of_port, self.messenger_port)).split()
        self.pox = subprocess.Popen(args,
                                    cwd="./pox/",
                                    preexec_fn=lambda: os.setsid())
        # Establish connection with POX messenger component.
        true_socket = connect_socket_with_backoff(address="127.0.0.1",
                                                  port=self.messenger_port)
        self.json_worker = JSONIOWorker(create_io_worker(true_socket))
        # Send the handshake.
        self.json_worker.send({"sts_connection": ""})
        self._initialize_switch()

    def _send_command(self, command):
        b64_pkt = base64_encode(command)
        self.json_worker.send(b64_pkt)

    def _create_port_for_controller(self, guest_eth_addr, host_device):
        raise NotImplementedError("")

    def clean_up(self):
        self.json_worker.close()
        self.pox.kill()
 def __init__(self, create_io_worker):
   super(OVSControllerPatchPanel, self).__init__(create_io_worker)
   # Boot up POX.
   args = str("""./pox.py openflow.of_01 --address=127.0.0.1 --port=%d"""
              """         messenger.messenger --tcp_address=127.0.0.1 --tcp_port=%d """
              """         sts_of_forwarder.sts_of_forwarder """ %
              (self.of_port, self.messenger_port)).split()
   self.pox = subprocess.Popen(args, cwd="./pox/", preexec_fn=lambda: os.setsid())
   # Establish connection with POX messenger component.
   true_socket = connect_socket_with_backoff(address="127.0.0.1",
                                             port=self.messenger_port)
   self.json_worker = JSONIOWorker(create_io_worker(true_socket))
   # Send the handshake.
   self.json_worker.send({"sts_connection": ""})
   self._initialize_switch()
Beispiel #8
0
 def __init__(self, io_master, socket):
   self.io_master = io_master
   self.io_worker = JSONIOWorker(self.io_master.create_worker_for_socket(socket))
Beispiel #9
0
 def __init__(self, io_master, socket):
     self.io_master = io_master
     self.io_worker = JSONIOWorker(self.io_master.create_worker_for_socket(socket))