rib: Perform FIB updates before modifying RIB
refs: #1941
Change-Id: I1457f71ddd1c120daae48308d5cc02a7c0ecf93d
diff --git a/tests/rib/fib-updates-new-namespace.t.cpp b/tests/rib/fib-updates-new-namespace.t.cpp
index e42271f..90abd31 100644
--- a/tests/rib/fib-updates-new-namespace.t.cpp
+++ b/tests/rib/fib-updates-new-namespace.t.cpp
@@ -41,25 +41,25 @@
// No flags, empty RIB, should generate 1 update for the inserted route
insertRoute("/a/b", 1, 0, 10, 0);
- Rib::FibUpdateList updates = getSortedFibUpdates();
+ FibUpdater::FibUpdateList updates = getSortedFibUpdates();
BOOST_REQUIRE_EQUAL(updates.size(), 1);
- Rib::FibUpdateList::const_iterator update = updates.begin();
- BOOST_CHECK_EQUAL((*update)->name, "/a/b");
- BOOST_CHECK_EQUAL((*update)->faceId, 1);
- BOOST_CHECK_EQUAL((*update)->cost, 10);
- BOOST_CHECK_EQUAL((*update)->action, FibUpdate::ADD_NEXTHOP);
+ FibUpdater::FibUpdateList::const_iterator update = updates.begin();
+ BOOST_CHECK_EQUAL(update->name, "/a/b");
+ BOOST_CHECK_EQUAL(update->faceId, 1);
+ BOOST_CHECK_EQUAL(update->cost, 10);
+ BOOST_CHECK_EQUAL(update->action, FibUpdate::ADD_NEXTHOP);
// Reset RIB
eraseRoute("/a/b", 1, 0);
- rib.clearFibUpdates();
+ clearFibUpdates();
// Parent with child inherit flag
insertRoute("/a", 2, 0, 70, ndn::nfd::ROUTE_FLAG_CHILD_INHERIT);
insertRoute("/a", 3, 0, 30, ndn::nfd::ROUTE_FLAG_CHILD_INHERIT);
// Clear updates generated from previous insertions
- rib.clearFibUpdates();
+ clearFibUpdates();
// Should generate 3 updates, 1 for the inserted route and 2 from inheritance
insertRoute("/a/b", 1, 0, 10, 0);
@@ -68,22 +68,22 @@
BOOST_REQUIRE_EQUAL(updates.size(), 3);
update = updates.begin();
- BOOST_CHECK_EQUAL((*update)->name, "/a/b");
- BOOST_CHECK_EQUAL((*update)->faceId, 1);
- BOOST_CHECK_EQUAL((*update)->cost, 10);
- BOOST_CHECK_EQUAL((*update)->action, FibUpdate::ADD_NEXTHOP);
+ BOOST_CHECK_EQUAL(update->name, "/a/b");
+ BOOST_CHECK_EQUAL(update->faceId, 1);
+ BOOST_CHECK_EQUAL(update->cost, 10);
+ BOOST_CHECK_EQUAL(update->action, FibUpdate::ADD_NEXTHOP);
++update;
- BOOST_CHECK_EQUAL((*update)->name, "/a/b");
- BOOST_CHECK_EQUAL((*update)->faceId, 2);
- BOOST_CHECK_EQUAL((*update)->cost, 70);
- BOOST_CHECK_EQUAL((*update)->action, FibUpdate::ADD_NEXTHOP);
+ BOOST_CHECK_EQUAL(update->name, "/a/b");
+ BOOST_CHECK_EQUAL(update->faceId, 2);
+ BOOST_CHECK_EQUAL(update->cost, 70);
+ BOOST_CHECK_EQUAL(update->action, FibUpdate::ADD_NEXTHOP);
++update;
- BOOST_CHECK_EQUAL((*update)->name, "/a/b");
- BOOST_CHECK_EQUAL((*update)->faceId, 3);
- BOOST_CHECK_EQUAL((*update)->cost, 30);
- BOOST_CHECK_EQUAL((*update)->action, FibUpdate::ADD_NEXTHOP);
+ BOOST_CHECK_EQUAL(update->name, "/a/b");
+ BOOST_CHECK_EQUAL(update->faceId, 3);
+ BOOST_CHECK_EQUAL(update->cost, 30);
+ BOOST_CHECK_EQUAL(update->action, FibUpdate::ADD_NEXTHOP);
}
BOOST_AUTO_TEST_CASE(BothFlags)
@@ -91,24 +91,24 @@
// Empty RIB, should generate 1 update for the inserted route
insertRoute("/a", 1, 0, 10, (ndn::nfd::ROUTE_FLAG_CHILD_INHERIT | ndn::nfd::ROUTE_FLAG_CAPTURE));
- Rib::FibUpdateList updates = getSortedFibUpdates();
+ FibUpdater::FibUpdateList updates = getSortedFibUpdates();
BOOST_REQUIRE_EQUAL(updates.size(), 1);
- Rib::FibUpdateList::const_iterator update = updates.begin();
- BOOST_CHECK_EQUAL((*update)->name, "/a");
- BOOST_CHECK_EQUAL((*update)->faceId, 1);
- BOOST_CHECK_EQUAL((*update)->cost, 10);
- BOOST_CHECK_EQUAL((*update)->action, FibUpdate::ADD_NEXTHOP);
+ FibUpdater::FibUpdateList::const_iterator update = updates.begin();
+ BOOST_CHECK_EQUAL(update->name, "/a");
+ BOOST_CHECK_EQUAL(update->faceId, 1);
+ BOOST_CHECK_EQUAL(update->cost, 10);
+ BOOST_CHECK_EQUAL(update->action, FibUpdate::ADD_NEXTHOP);
// Reset RIB
eraseRoute("/a", 1, 0);
- rib.clearFibUpdates();
+ clearFibUpdates();
insertRoute("/", 2, 0, 70, ndn::nfd::ROUTE_FLAG_CHILD_INHERIT);
insertRoute("/a/b", 3, 0, 30, 0);
// Clear updates generated from previous insertions
- rib.clearFibUpdates();
+ clearFibUpdates();
// Should generate 3 updates, 1 for the inserted route, 1 to add the route to the child,
// and 1 to remove the previously inherited route
@@ -118,21 +118,21 @@
BOOST_REQUIRE_EQUAL(updates.size(), 3);
update = updates.begin();
- BOOST_CHECK_EQUAL((*update)->name, "/a");
- BOOST_CHECK_EQUAL((*update)->faceId, 1);
- BOOST_CHECK_EQUAL((*update)->cost, 10);
- BOOST_CHECK_EQUAL((*update)->action, FibUpdate::ADD_NEXTHOP);
+ BOOST_CHECK_EQUAL(update->name, "/a");
+ BOOST_CHECK_EQUAL(update->faceId, 1);
+ BOOST_CHECK_EQUAL(update->cost, 10);
+ BOOST_CHECK_EQUAL(update->action, FibUpdate::ADD_NEXTHOP);
++update;
- BOOST_CHECK_EQUAL((*update)->name, "/a/b");
- BOOST_CHECK_EQUAL((*update)->faceId, 1);
- BOOST_CHECK_EQUAL((*update)->cost, 10);
- BOOST_CHECK_EQUAL((*update)->action, FibUpdate::ADD_NEXTHOP);
+ BOOST_CHECK_EQUAL(update->name, "/a/b");
+ BOOST_CHECK_EQUAL(update->faceId, 1);
+ BOOST_CHECK_EQUAL(update->cost, 10);
+ BOOST_CHECK_EQUAL(update->action, FibUpdate::ADD_NEXTHOP);
++update;
- BOOST_CHECK_EQUAL((*update)->name, "/a/b");
- BOOST_CHECK_EQUAL((*update)->faceId, 2);
- BOOST_CHECK_EQUAL((*update)->action, FibUpdate::REMOVE_NEXTHOP);
+ BOOST_CHECK_EQUAL(update->name, "/a/b");
+ BOOST_CHECK_EQUAL(update->faceId, 2);
+ BOOST_CHECK_EQUAL(update->action, FibUpdate::REMOVE_NEXTHOP);
}
BOOST_AUTO_TEST_CASE(ChildInherit)
@@ -142,25 +142,25 @@
insertRoute("/a/c", 3, 0, 10, ndn::nfd::ROUTE_FLAG_CAPTURE);
// Clear updates generated from previous insertions
- rib.clearFibUpdates();
+ clearFibUpdates();
// Should generate 2 updates: 1 for the inserted route and 1 to add the route to "/a/b"
insertRoute("/a", 1, 0, 10, ndn::nfd::ROUTE_FLAG_CHILD_INHERIT);
- Rib::FibUpdateList updates = getSortedFibUpdates();
+ FibUpdater::FibUpdateList updates = getSortedFibUpdates();
BOOST_REQUIRE_EQUAL(updates.size(), 2);
- Rib::FibUpdateList::const_iterator update = updates.begin();
- BOOST_CHECK_EQUAL((*update)->name, "/a");
- BOOST_CHECK_EQUAL((*update)->faceId, 1);
- BOOST_CHECK_EQUAL((*update)->cost, 10);
- BOOST_CHECK_EQUAL((*update)->action, FibUpdate::ADD_NEXTHOP);
+ FibUpdater::FibUpdateList::const_iterator update = updates.begin();
+ BOOST_CHECK_EQUAL(update->name, "/a");
+ BOOST_CHECK_EQUAL(update->faceId, 1);
+ BOOST_CHECK_EQUAL(update->cost, 10);
+ BOOST_CHECK_EQUAL(update->action, FibUpdate::ADD_NEXTHOP);
++update;
- BOOST_CHECK_EQUAL((*update)->name, "/a/b");
- BOOST_CHECK_EQUAL((*update)->faceId, 1);
- BOOST_CHECK_EQUAL((*update)->cost, 10);
- BOOST_CHECK_EQUAL((*update)->action, FibUpdate::ADD_NEXTHOP);
+ BOOST_CHECK_EQUAL(update->name, "/a/b");
+ BOOST_CHECK_EQUAL(update->faceId, 1);
+ BOOST_CHECK_EQUAL(update->cost, 10);
+ BOOST_CHECK_EQUAL(update->action, FibUpdate::ADD_NEXTHOP);
}
BOOST_AUTO_TEST_CASE(Capture)
@@ -170,25 +170,25 @@
insertRoute("/a/c", 3, 0, 10, ndn::nfd::ROUTE_FLAG_CAPTURE);
// Clear updates generated from previous insertions
- rib.clearFibUpdates();
+ clearFibUpdates();
// Should generate 2 updates: 1 for the inserted route and
// 1 to remove the inherited route from "/a/b"
insertRoute("/a", 1, 0, 10, ndn::nfd::ROUTE_FLAG_CAPTURE);
- Rib::FibUpdateList updates = getSortedFibUpdates();
+ FibUpdater::FibUpdateList updates = getSortedFibUpdates();
BOOST_REQUIRE_EQUAL(updates.size(), 2);
- Rib::FibUpdateList::const_iterator update = updates.begin();
- BOOST_CHECK_EQUAL((*update)->name, "/a");
- BOOST_CHECK_EQUAL((*update)->faceId, 1);
- BOOST_CHECK_EQUAL((*update)->cost, 10);
- BOOST_CHECK_EQUAL((*update)->action, FibUpdate::ADD_NEXTHOP);
+ FibUpdater::FibUpdateList::const_iterator update = updates.begin();
+ BOOST_CHECK_EQUAL(update->name, "/a");
+ BOOST_CHECK_EQUAL(update->faceId, 1);
+ BOOST_CHECK_EQUAL(update->cost, 10);
+ BOOST_CHECK_EQUAL(update->action, FibUpdate::ADD_NEXTHOP);
++update;
- BOOST_CHECK_EQUAL((*update)->name, "/a/b");
- BOOST_CHECK_EQUAL((*update)->faceId, 1);
- BOOST_CHECK_EQUAL((*update)->action, FibUpdate::REMOVE_NEXTHOP);
+ BOOST_CHECK_EQUAL(update->name, "/a/b");
+ BOOST_CHECK_EQUAL(update->faceId, 1);
+ BOOST_CHECK_EQUAL(update->action, FibUpdate::REMOVE_NEXTHOP);
}
BOOST_AUTO_TEST_SUITE_END() // NewNamespace