mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 06:15:47 +00:00
Remove NXAST_DROP_SPOOFED_ARP action.
The NXAST_DROP_SPOOFED_ARP action has been deprecated in favor of defining flows using the NXM_NX_ARP_SHA flow match for a while. This commit removes it. Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com>
This commit is contained in:
@@ -708,7 +708,6 @@ dpif_netdev_validate_actions(const struct nlattr *actions,
|
||||
break;
|
||||
|
||||
case ODP_ACTION_ATTR_CONTROLLER:
|
||||
case ODP_ACTION_ATTR_DROP_SPOOFED_ARP:
|
||||
break;
|
||||
|
||||
case ODP_ACTION_ATTR_SET_DL_TCI:
|
||||
@@ -1285,34 +1284,6 @@ dp_netdev_output_control(struct dp_netdev *dp, const struct ofpbuf *packet,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Returns true if 'packet' is an invalid Ethernet+IPv4 ARP packet: one with
|
||||
* screwy or truncated header fields or one whose inner and outer Ethernet
|
||||
* address differ. */
|
||||
static bool
|
||||
dp_netdev_is_spoofed_arp(struct ofpbuf *packet, const struct flow *key)
|
||||
{
|
||||
struct arp_eth_header *arp;
|
||||
struct eth_header *eth;
|
||||
ptrdiff_t l3_size;
|
||||
|
||||
if (key->dl_type != htons(ETH_TYPE_ARP)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
l3_size = (char *) ofpbuf_end(packet) - (char *) packet->l3;
|
||||
if (l3_size < sizeof(struct arp_eth_header)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
eth = packet->l2;
|
||||
arp = packet->l3;
|
||||
return (arp->ar_hrd != htons(ARP_HRD_ETHERNET)
|
||||
|| arp->ar_pro != htons(ARP_PRO_IP)
|
||||
|| arp->ar_hln != ETH_HEADER_LEN
|
||||
|| arp->ar_pln != 4
|
||||
|| !eth_addr_equals(arp->ar_sha, eth->eth_src));
|
||||
}
|
||||
|
||||
static int
|
||||
dp_netdev_execute_actions(struct dp_netdev *dp,
|
||||
struct ofpbuf *packet, struct flow *key,
|
||||
@@ -1362,11 +1333,6 @@ dp_netdev_execute_actions(struct dp_netdev *dp,
|
||||
case ODP_ACTION_ATTR_SET_TP_DST:
|
||||
dp_netdev_set_tp_port(packet, key, a);
|
||||
break;
|
||||
|
||||
case ODP_ACTION_ATTR_DROP_SPOOFED_ARP:
|
||||
if (dp_netdev_is_spoofed_arp(packet, key)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user