ip-neighbor: Allow to replace dynamic entry
Before this patch it was not allowed to replace a dynamic ARP entry with a static one with the same mac-address. Type: fix Signed-off-by: Vladimir Isaev <visaev@netgate.com> Change-Id: I6cfc0e510ffdf141c61874288f11a60395182374
This commit is contained in:

committed by
Matthew Smith

parent
5d27037d16
commit
b2f44bd8e7
@@ -1247,6 +1247,116 @@ class ARPTestCase(VppTestCase):
|
||||
static_arp.remove_vpp_config()
|
||||
self.pg2.set_table_ip4(0)
|
||||
|
||||
def test_arp_static_replace_dynamic_same_mac(self):
|
||||
""" ARP Static can replace Dynamic (same mac) """
|
||||
self.pg2.generate_remote_hosts(1)
|
||||
|
||||
dyn_arp = VppNeighbor(self,
|
||||
self.pg2.sw_if_index,
|
||||
self.pg2.remote_hosts[0].mac,
|
||||
self.pg2.remote_hosts[0].ip4)
|
||||
static_arp = VppNeighbor(self,
|
||||
self.pg2.sw_if_index,
|
||||
self.pg2.remote_hosts[0].mac,
|
||||
self.pg2.remote_hosts[0].ip4,
|
||||
is_static=1)
|
||||
|
||||
#
|
||||
# Add a dynamic ARP entry
|
||||
#
|
||||
dyn_arp.add_vpp_config()
|
||||
|
||||
#
|
||||
# We should find the dynamic nbr
|
||||
#
|
||||
self.assertFalse(find_nbr(self,
|
||||
self.pg2.sw_if_index,
|
||||
self.pg2.remote_hosts[0].ip4,
|
||||
is_static=1))
|
||||
self.assertTrue(find_nbr(self,
|
||||
self.pg2.sw_if_index,
|
||||
self.pg2.remote_hosts[0].ip4,
|
||||
is_static=0,
|
||||
mac=self.pg2.remote_hosts[0].mac))
|
||||
|
||||
#
|
||||
# Add a static ARP entry with the same mac
|
||||
#
|
||||
static_arp.add_vpp_config()
|
||||
|
||||
#
|
||||
# We should now find the static nbr with the same mac
|
||||
#
|
||||
self.assertFalse(find_nbr(self,
|
||||
self.pg2.sw_if_index,
|
||||
self.pg2.remote_hosts[0].ip4,
|
||||
is_static=0))
|
||||
self.assertTrue(find_nbr(self,
|
||||
self.pg2.sw_if_index,
|
||||
self.pg2.remote_hosts[0].ip4,
|
||||
is_static=1,
|
||||
mac=self.pg2.remote_hosts[0].mac))
|
||||
|
||||
#
|
||||
# clean-up
|
||||
#
|
||||
static_arp.remove_vpp_config()
|
||||
|
||||
def test_arp_static_replace_dynamic_diff_mac(self):
|
||||
""" ARP Static can replace Dynamic (diff mac) """
|
||||
self.pg2.generate_remote_hosts(2)
|
||||
|
||||
dyn_arp = VppNeighbor(self,
|
||||
self.pg2.sw_if_index,
|
||||
self.pg2.remote_hosts[0].mac,
|
||||
self.pg2.remote_hosts[0].ip4)
|
||||
static_arp = VppNeighbor(self,
|
||||
self.pg2.sw_if_index,
|
||||
self.pg2.remote_hosts[1].mac,
|
||||
self.pg2.remote_hosts[0].ip4,
|
||||
is_static=1)
|
||||
|
||||
#
|
||||
# Add a dynamic ARP entry
|
||||
#
|
||||
dyn_arp.add_vpp_config()
|
||||
|
||||
#
|
||||
# We should find the dynamic nbr
|
||||
#
|
||||
self.assertFalse(find_nbr(self,
|
||||
self.pg2.sw_if_index,
|
||||
self.pg2.remote_hosts[0].ip4,
|
||||
is_static=1))
|
||||
self.assertTrue(find_nbr(self,
|
||||
self.pg2.sw_if_index,
|
||||
self.pg2.remote_hosts[0].ip4,
|
||||
is_static=0,
|
||||
mac=self.pg2.remote_hosts[0].mac))
|
||||
|
||||
#
|
||||
# Add a static ARP entry with a changed mac
|
||||
#
|
||||
static_arp.add_vpp_config()
|
||||
|
||||
#
|
||||
# We should now find the static nbr with a changed mac
|
||||
#
|
||||
self.assertFalse(find_nbr(self,
|
||||
self.pg2.sw_if_index,
|
||||
self.pg2.remote_hosts[0].ip4,
|
||||
is_static=0))
|
||||
self.assertTrue(find_nbr(self,
|
||||
self.pg2.sw_if_index,
|
||||
self.pg2.remote_hosts[0].ip4,
|
||||
is_static=1,
|
||||
mac=self.pg2.remote_hosts[1].mac))
|
||||
|
||||
#
|
||||
# clean-up
|
||||
#
|
||||
static_arp.remove_vpp_config()
|
||||
|
||||
def test_arp_incomplete(self):
|
||||
""" ARP Incomplete"""
|
||||
self.pg1.generate_remote_hosts(3)
|
||||
|
Reference in New Issue
Block a user