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)
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)
def create_route(self, route): self.repo.set_route(route) for (dp_id, dp) in self._data_paths.iteritems(): flows.build_all(dp, route)