Beispiel #1
0
    def handle_packet(self, ev):
        msg = ev.msg
        dp = msg.datapath
        dpid = dp.id
        dp_info = self._data_paths[dp.id]

        pkt = packet.Packet(msg.data)
        if dp_info is None:
            LOG.error(
                'Unexpected packet from an unknown datapath. '
                'Datapath id: %s, Packet: %s' % dpid, pkt)

        ip = pkt.get_protocol(ipv4.ipv4)

        if ip is None:
            LOG.debug('Non layer 3 message received, ignoring. '
                      'Packet: %s' % pkt)
            return

        if ip.dst in self.repo.get_public_ips():
            route = self.repo.get_route(ip.dst)

            LOG.info('Recieved packet for ip address %s.  '
                     'Attempting to build the flows' % route['public_ip'])
            flows.build_all(dp_info, route)
        else:
            LOG.info('Unknown ip address %s: blocking temporarily.' % ip.dst)
Beispiel #2
0
    def handle_packet(self, ev):
        msg = ev.msg
        dp = msg.datapath
        dpid = dp.id
        dp_info = self._data_paths[dp.id]

        pkt = packet.Packet(msg.data)
        if dp_info is None:
            LOG.error('Unexpected packet from an unknown datapath. '
                      'Datapath id: %s, Packet: %s' % dpid, pkt)

        ip = pkt.get_protocol(ipv4.ipv4)

        if ip is None:
            LOG.debug('Non layer 3 message received, ignoring. '
                      'Packet: %s' % pkt)
            return

        if ip.dst in self.repo.get_public_ips():
            route = self.repo.get_route(ip.dst)

            LOG.info('Recieved packet for ip address %s.  '
                     'Attempting to build the flows' % route['public_ip'])
            flows.build_all(dp_info, route)
        else:
            LOG.info('Unknown ip address %s: blocking temporarily.' % ip.dst)
Beispiel #3
0
 def create_route(self, route):
     self.repo.set_route(route)
     for (dp_id, dp) in self._data_paths.iteritems():
         flows.build_all(dp, route)
Beispiel #4
0
 def create_route(self, route):
     self.repo.set_route(route)
     for (dp_id, dp) in self._data_paths.iteritems():
         flows.build_all(dp, route)