def control_plane_icmp_handler(self, in_port, vlan, eth_src, ipv4_pkt, icmp_pkt): ofmsgs = [] src_ip = ipaddr.IPv4Address(ipv4_pkt.src) dst_ip = ipaddr.IPv4Address(ipv4_pkt.dst) if (icmp_pkt is not None and vlan.ip_in_controller_subnet(src_ip) and vlan.ip_in_controller_subnet(dst_ip)): vid = self._vlan_vid(vlan, in_port) echo_reply = valve_packet.echo_reply(self.faucet_mac, eth_src, vid, dst_ip, src_ip, icmp_pkt.data) ofmsgs.append(valve_of.packetout(in_port, echo_reply.data)) return ofmsgs
def control_plane_icmp_handler(self, in_port, vlan, eth_src, ipv4_pkt, icmp_pkt): ofmsgs = [] src_ip = ipaddr.IPv4Address(ipv4_pkt.src) dst_ip = ipaddr.IPv4Address(ipv4_pkt.dst) if (icmp_pkt is not None and vlan.ip_in_controller_subnet(src_ip) and vlan.ip_in_controller_subnet(dst_ip)): vid = self._vlan_vid(vlan, in_port) echo_reply = valve_packet.echo_reply( self.faucet_mac, eth_src, vid, dst_ip, src_ip, icmp_pkt.data) ofmsgs.append(valve_of.packetout(in_port, echo_reply.data)) return ofmsgs
def _control_plane_icmp_handler(self, pkt_meta, ipv4_pkt, icmp_pkt): src_ip = ipaddress.IPv4Address(btos(ipv4_pkt.src)) dst_ip = ipaddress.IPv4Address(btos(ipv4_pkt.dst)) vlan = pkt_meta.vlan icmpv4_type = icmp_pkt.type ofmsgs = [] if vlan.from_connected_to_vip(src_ip, dst_ip): if (icmpv4_type == icmp.ICMP_ECHO_REQUEST and pkt_meta.eth_dst == self.faucet_mac): port = pkt_meta.port vid = self._vlan_vid(vlan, port) echo_reply = valve_packet.echo_reply(vid, self.faucet_mac, pkt_meta.eth_src, dst_ip, src_ip, icmp_pkt.data) ofmsgs.append(valve_of.packetout(port.number, echo_reply.data)) return ofmsgs
def _control_plane_icmp_handler(self, pkt_meta, ipv4_pkt, icmp_pkt): src_ip = ipaddr.IPv4Address(ipv4_pkt.src) dst_ip = ipaddr.IPv4Address(ipv4_pkt.dst) vlan = pkt_meta.vlan icmpv4_type = icmp_pkt.type ofmsgs = [] if vlan.from_connected_to_vip(src_ip, dst_ip): if (icmpv4_type == icmp.ICMP_ECHO_REQUEST and pkt_meta.eth_dst == self.faucet_mac): in_port = pkt_meta.port.number vid = self._vlan_vid(vlan, in_port) echo_reply = valve_packet.echo_reply( self.faucet_mac, pkt_meta.eth_src, vid, dst_ip, src_ip, icmp_pkt.data) ofmsgs.append( valve_of.packetout(in_port, echo_reply.data)) return ofmsgs
def _control_plane_icmp_handler(self, pkt_meta, ipv4_pkt): ofmsgs = [] src_ip = ipaddress.IPv4Address(btos(ipv4_pkt.src)) dst_ip = ipaddress.IPv4Address(btos(ipv4_pkt.dst)) vlan = pkt_meta.vlan if vlan.from_connected_to_vip(src_ip, dst_ip): if pkt_meta.eth_dst != vlan.faucet_mac: return ofmsgs if ipv4_pkt.proto != inet.IPPROTO_ICMP: return ofmsgs pkt_meta.reparse_all() icmp_pkt = pkt_meta.pkt.get_protocol(icmp.icmp) if icmp_pkt is None: return ofmsgs if icmp_pkt.type == icmp.ICMP_ECHO_REQUEST: port = pkt_meta.port vid = self._vlan_vid(vlan, port) echo_reply = valve_packet.echo_reply(vid, vlan.faucet_mac, pkt_meta.eth_src, dst_ip, src_ip, icmp_pkt.data) ofmsgs.append(valve_of.packetout(port.number, echo_reply.data)) return ofmsgs