|
6 | 6 |
|
7 | 7 |
|
8 | 8 | class TestNeighbor(object):
|
| 9 | + CONFIG_PEER_SWITCH = "PEER_SWITCH" |
| 10 | + PEER_SWITCH_HOST = "peer_switch_hostname" |
| 11 | + PEER_IPV4 = "10.1.0.33" |
| 12 | + |
| 13 | + DEFAULT_PEER_SWITCH_PARAMS = { |
| 14 | + "address_ipv4": PEER_IPV4 |
| 15 | + } |
| 16 | + |
9 | 17 | def setup_db(self, dvs):
|
10 | 18 | self.pdb = swsscommon.DBConnector(0, dvs.redis_sock, 0)
|
11 | 19 | self.adb = swsscommon.DBConnector(1, dvs.redis_sock, 0)
|
@@ -428,6 +436,53 @@ def test_Ipv4LinkLocalNeighbor(self, dvs, testlog):
|
428 | 436 | # add neighbor
|
429 | 437 | self.add_neighbor("Ethernet8", "169.254.0.0", "00:01:02:03:04:05")
|
430 | 438 |
|
| 439 | + # check application database |
| 440 | + tbl = swsscommon.Table(self.pdb, "NEIGH_TABLE:Ethernet8") |
| 441 | + intf_entries = tbl.getKeys() |
| 442 | + assert len(intf_entries) == 1 |
| 443 | + |
| 444 | + # check ASIC neighbor database |
| 445 | + tbl = swsscommon.Table(self.adb, "ASIC_STATE:SAI_OBJECT_TYPE_NEIGHBOR_ENTRY") |
| 446 | + intf_entries = tbl.getKeys() |
| 447 | + assert len(intf_entries) == 1 |
| 448 | + |
| 449 | + # remove neighbor |
| 450 | + self.remove_neighbor("Ethernet8", "169.254.0.0") |
| 451 | + |
| 452 | + # remove IP from interface |
| 453 | + self.remove_ip_address("Ethernet8", "10.0.0.1/24") |
| 454 | + |
| 455 | + # remove interface |
| 456 | + self.remove_l3_intf("Ethernet8") |
| 457 | + |
| 458 | + # bring down interface |
| 459 | + self.set_admin_status("Ethernet8", "down") |
| 460 | + |
| 461 | + # check application database |
| 462 | + tbl = swsscommon.Table(self.pdb, "NEIGH_TABLE:Ethernet8") |
| 463 | + intf_entries = tbl.getKeys() |
| 464 | + assert len(intf_entries) == 0 |
| 465 | + |
| 466 | + # check ASIC neighbor database |
| 467 | + tbl = swsscommon.Table(self.adb, "ASIC_STATE:SAI_OBJECT_TYPE_NEIGHBOR_ENTRY") |
| 468 | + intf_entries = tbl.getKeys() |
| 469 | + assert len(intf_entries) == 0 |
| 470 | + |
| 471 | + def test_Ipv4LinkLocalNeighborWithDualToR(self, dvs, testlog, setup_peer_switch): |
| 472 | + self.setup_db(dvs) |
| 473 | + |
| 474 | + # bring up interface |
| 475 | + self.set_admin_status("Ethernet8", "up") |
| 476 | + |
| 477 | + # create interface |
| 478 | + self.create_l3_intf("Ethernet8", "") |
| 479 | + |
| 480 | + # assign IP to interface |
| 481 | + self.add_ip_address("Ethernet8", "10.0.0.1/24") |
| 482 | + |
| 483 | + # add neighbor |
| 484 | + self.add_neighbor("Ethernet8", "169.254.0.0", "00:01:02:03:04:05") |
| 485 | + |
431 | 486 | # check application database
|
432 | 487 | tbl = swsscommon.Table(self.pdb, "NEIGH_TABLE:Ethernet8")
|
433 | 488 | intf_entries = tbl.getKeys()
|
@@ -460,6 +515,14 @@ def test_Ipv4LinkLocalNeighbor(self, dvs, testlog):
|
460 | 515 | intf_entries = tbl.getKeys()
|
461 | 516 | assert len(intf_entries) == 0
|
462 | 517 |
|
| 518 | + @pytest.fixture |
| 519 | + def setup_peer_switch(self, dvs): |
| 520 | + config_db = dvs.get_config_db() |
| 521 | + config_db.create_entry( |
| 522 | + self.CONFIG_PEER_SWITCH, |
| 523 | + self.PEER_SWITCH_HOST, |
| 524 | + self.DEFAULT_PEER_SWITCH_PARAMS |
| 525 | + ) |
463 | 526 |
|
464 | 527 | # Add Dummy always-pass test at end as workaroud
|
465 | 528 | # for issue when Flaky fail on final test it invokes module tear-down before retrying
|
|
0 commit comments