From 12585c1f46a6eca3b60fe679d098b4007a63fb76 Mon Sep 17 00:00:00 2001 From: Naveen N Date: Thu, 21 Apr 2016 23:42:49 +0530 Subject: [PATCH] * Fix test_ecmp compilation failure Closes-bug:#1555000 Change-Id: I975d6f6e7bc1a255f451af3507b8c1fb9d3c49db --- src/vnsw/agent/pkt/test/test_ecmp_local.cc | 11 +- src/vnsw/agent/pkt/test/test_ecmp_mx.cc | 134 +++++++++++-------- src/vnsw/agent/pkt/test/test_fip_dst_ecmp.cc | 19 ++- src/vnsw/agent/pkt/test/test_fip_src_ecmp.cc | 35 +++-- 4 files changed, 103 insertions(+), 96 deletions(-) diff --git a/src/vnsw/agent/pkt/test/test_ecmp_local.cc b/src/vnsw/agent/pkt/test/test_ecmp_local.cc index 274c4a2eb86..289773b93d1 100644 --- a/src/vnsw/agent/pkt/test/test_ecmp_local.cc +++ b/src/vnsw/agent/pkt/test/test_ecmp_local.cc @@ -25,7 +25,6 @@ class EcmpTest : public ::testing::Test { "xmpp channel"); client->WaitForIdle(); - flow_proto_ = agent_->pkt()->get_flow_proto(); CreateVmportWithEcmp(input1, 2); AddVn("vn2", 2); AddVrf("vrf2"); @@ -52,7 +51,7 @@ class EcmpTest : public ::testing::Test { client->WaitForIdle(); EXPECT_FALSE(VrfFind("vrf1", true)); EXPECT_FALSE(VrfFind("vrf2", true)); - WAIT_FOR(1000, 1000, (flow_proto_->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); client->WaitForIdle(); } public: @@ -87,10 +86,8 @@ class EcmpTest : public ::testing::Test { PathPreference()); } - FlowProto *get_flow_proto() const { return flow_proto_; } Agent *agent_; Peer *bgp_peer; - FlowProto *flow_proto_; AgentXmppChannel *channel; char router_id[80]; char MX_0[80]; @@ -122,19 +119,19 @@ TEST_F(EcmpTest, EcmpTest_1) { EXPECT_TRUE(entry != NULL); EXPECT_TRUE(entry->data().component_nh_idx != CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(entry->data().nh.get() == src_rt->GetLocalNextHop()); + EXPECT_TRUE(entry->data().nh_state_->nh() == src_rt->GetLocalNextHop()); //Reverse flow is no ECMP FlowEntry *rev_entry = entry->reverse_flow_entry(); EXPECT_TRUE(rev_entry->data().component_nh_idx != CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); DeleteRoute("vrf1", "0.0.0.0", 0, bgp_peer); client->WaitForIdle(); sleep(1); client->WaitForIdle(); - WAIT_FOR(1000, 1000, (get_flow_proto()->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); } int main(int argc, char *argv[]) { diff --git a/src/vnsw/agent/pkt/test/test_ecmp_mx.cc b/src/vnsw/agent/pkt/test/test_ecmp_mx.cc index 6d877b4abcc..2b8b2306f84 100644 --- a/src/vnsw/agent/pkt/test/test_ecmp_mx.cc +++ b/src/vnsw/agent/pkt/test/test_ecmp_mx.cc @@ -25,7 +25,6 @@ class EcmpTest : public ::testing::Test { "xmpp channel"); client->WaitForIdle(); - flow_proto_ = agent_->pkt()->get_flow_proto(); CreateVmportWithEcmp(input1, 1); AddVn("vn2", 2); AddVrf("vrf2"); @@ -50,7 +49,7 @@ class EcmpTest : public ::testing::Test { client->WaitForIdle(); EXPECT_FALSE(VrfFind("vrf1", true)); EXPECT_FALSE(VrfFind("vrf2", true)); - WAIT_FOR(1000, 1000, (flow_proto_->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); client->WaitForIdle(); } public: @@ -85,10 +84,8 @@ class EcmpTest : public ::testing::Test { PathPreference()); } - FlowProto *get_flow_proto() const { return flow_proto_; } Agent *agent_; Peer *bgp_peer; - FlowProto *flow_proto_; AgentXmppChannel *channel; char router_id[80]; char MX_0[80]; @@ -120,11 +117,11 @@ TEST_F(EcmpTest, EcmpTest_1) { FlowEntry *rev_entry = entry->reverse_flow_entry(); EXPECT_TRUE(rev_entry->data().component_nh_idx == CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); DeleteRoute("vrf1", "0.0.0.0", 0, bgp_peer); client->WaitForIdle(); - WAIT_FOR(1000, 1000, (get_flow_proto()->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); } //Send packet from ECMP MX to VM @@ -150,11 +147,11 @@ TEST_F(EcmpTest, EcmpTest_2) { FlowEntry *rev_entry = entry->reverse_flow_entry(); EXPECT_TRUE(rev_entry->data().component_nh_idx == CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); DeleteRoute("vrf1", "0.0.0.0", 0, bgp_peer); client->WaitForIdle(); - WAIT_FOR(1000, 1000, (get_flow_proto()->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); } //Send packet from MX3 to VM @@ -176,11 +173,11 @@ TEST_F(EcmpTest, EcmpTest_3) { FlowEntry *rev_entry = entry->reverse_flow_entry(); EXPECT_TRUE(rev_entry->data().component_nh_idx == CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); DeleteRoute("vrf1", "0.0.0.0", 0, bgp_peer); client->WaitForIdle(); - WAIT_FOR(1000, 1000, (get_flow_proto()->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); } //Send packet from MX1 to VM @@ -202,17 +199,17 @@ TEST_F(EcmpTest, EcmpTest_4) { FlowEntry *rev_entry = entry->reverse_flow_entry(); EXPECT_TRUE(rev_entry->data().component_nh_idx == CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); TxIpMplsPacket(eth_intf_id, MX_2, router_id, vm1_label, "8.8.8.8", "1.1.1.1", 1, 10); client->WaitForIdle(); EXPECT_TRUE(entry->data().component_nh_idx == 2); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); DeleteRoute("vrf1", "0.0.0.0", 0, bgp_peer); client->WaitForIdle(); - WAIT_FOR(1000, 1000, (get_flow_proto()->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); } //Send packet from MX to VM @@ -244,14 +241,14 @@ TEST_F(EcmpTest, EcmpTest_5) { FlowEntry *rev_entry = entry->reverse_flow_entry(); EXPECT_TRUE(rev_entry->data().component_nh_idx == CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); DeleteRoute("vrf1", "0.0.0.0", 0, bgp_peer); DeleteRoute("vrf2", "0.0.0.0", 0, bgp_peer); DelLink("virtual-network", "vn1", "access-control-list", "Acl"); DelAcl("Acl"); client->WaitForIdle(); - WAIT_FOR(1000, 1000, (get_flow_proto()->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); } //Floating IP traffic from VM going to ECMP MX @@ -259,25 +256,31 @@ TEST_F(EcmpTest, EcmpTest_6) { //Setup //Add IP 2.1.1.1 as floating IP to 1.1.1.1 //Make address 8.8.8.8 reachable on 4 MX - //Send traffic from MX3 to FIP + //Send traffic from MX3 to default-project:fip //Verify RPF nh and component index - AddVn("fip", 3); - AddVrf("fip:fip"); - AddLink("virtual-network", "fip", "routing-instance", "fip:fip"); - AddFloatingIpPool("fip-pool1", 1); - AddFloatingIp("fip1", 1, "2.1.1.1"); - AddLink("floating-ip", "fip1", "floating-ip-pool", "fip-pool1"); - AddLink("floating-ip-pool", "fip-pool1", "virtual-network", "fip"); - AddLink("virtual-machine-interface", "vnet1", "floating-ip", "fip1"); + AddVn("default-project:fip", 3); + AddVrf("default-project:fip:fip"); + AddLink("virtual-network", "default-project:fip", + "routing-instance", "default-project:fip:fip"); + AddFloatingIpPool("default-project:fip-pool1", 1); + AddFloatingIp("default-project:fip1", 1, "2.1.1.1"); + AddLink("floating-ip", "default-project:fip1", + "floating-ip-pool", "default-project:fip-pool1"); + AddLink("floating-ip-pool", "default-project:fip-pool1", + "virtual-network", "default-project:fip"); + AddLink("virtual-machine-interface", "vnet1", + "floating-ip", "default-project:fip1"); client->WaitForIdle(); - AddRemoteEcmpRoute("fip:fip", "0.0.0.0", 0, "fip", 4); + AddRemoteEcmpRoute("default-project:fip:fip", + "0.0.0.0", 0, "default-project:fip", 4); client->WaitForIdle(); TxIpMplsPacket(eth_intf_id, MX_3, router_id, vm1_label, "8.8.8.8", "2.1.1.1", 1, 10); client->WaitForIdle(); - AgentRoute *rt = RouteGet("fip:fip", Ip4Address::from_string("0.0.0.0"), 0); + AgentRoute *rt = RouteGet("default-project:fip:fip", + Ip4Address::from_string("0.0.0.0"), 0); FlowEntry *entry = FlowGet(VrfGet("vrf1")->vrf_id(), "1.1.1.1", "8.8.8.8", 1, 0, 0, GetFlowKeyNH(1)); EXPECT_TRUE(entry != NULL); @@ -287,20 +290,23 @@ TEST_F(EcmpTest, EcmpTest_6) { FlowEntry *rev_entry = entry->reverse_flow_entry(); EXPECT_TRUE(rev_entry->data().component_nh_idx == CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); //Clean up - DeleteRoute("fip:fip", "0.0.0.0", 0, bgp_peer); - DelLink("virtual-machine-interface", "vnet1", "floating-ip", "fip1"); - DelLink("floating-ip-pool", "fip-pool1", "virtual-network", "fip"); - DelNode("floating-ip", "fip1"); - DelNode("floating-ip-pool", "fip-pool1"); + DeleteRoute("default-project:fip:fip", "0.0.0.0", 0, bgp_peer); + DelLink("virtual-machine-interface", "vnet1", + "floating-ip", "default-project:fip1"); + DelLink("floating-ip-pool", "default-project:fip-pool1", + "virtual-network", "default-project:fip"); + DelNode("floating-ip", "default-project:fip1"); + DelNode("floating-ip-pool", "default-project:fip-pool1"); client->WaitForIdle(); - DelLink("virtual-network", "fip", "routing-instance", "fip:fip"); - DelVrf("fip:fip"); - DelVn("fip"); + DelLink("virtual-network", "default-project:fip", + "routing-instance", "default-project:fip:fip"); + DelVrf("default-project:fip:fip"); + DelVn("default-project:fip"); client->WaitForIdle(); - WAIT_FOR(1000, 1000, (get_flow_proto()->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); } //Floating IP traffic from VM going to ECMP MX with @@ -309,24 +315,31 @@ TEST_F(EcmpTest, EcmpTest_7) { //Setup //Add IP 2.1.1.1 as floating IP to 1.1.1.1 //Make address 8.8.8.8 reachable on 4 MX - //Send traffic from MX3 to FIP with vrf translation + //Send traffic from MX3 to default-project:fip with vrf translation //Verify RPF nh and component index - AddVn("fip", 3); - AddVrf("fip:fip"); - AddLink("virtual-network", "fip", "routing-instance", "fip:fip"); - AddFloatingIpPool("fip-pool1", 1); - AddFloatingIp("fip1", 1, "2.1.1.1"); - AddLink("floating-ip", "fip1", "floating-ip-pool", "fip-pool1"); - AddLink("floating-ip-pool", "fip-pool1", "virtual-network", "fip"); - AddLink("virtual-machine-interface", "vnet1", "floating-ip", "fip1"); + AddVn("default-project:fip", 3); + AddVrf("default-project:fip:fip"); + AddLink("virtual-network", "default-project:fip", + "routing-instance", "default-project:fip:fip"); + AddFloatingIpPool("default-project:fip-pool1", 1); + AddFloatingIp("default-project:fip1", 1, "2.1.1.1"); + AddLink("floating-ip", "default-project:fip1", + "floating-ip-pool", "default-project:fip-pool1"); + AddLink("floating-ip-pool", "default-project:fip-pool1", + "virtual-network", "default-project:fip"); + AddLink("virtual-machine-interface", "vnet1", + "floating-ip", "default-project:fip1"); client->WaitForIdle(); - AddRemoteEcmpRoute("fip:fip", "0.0.0.0", 0, "fip", 4); + AddRemoteEcmpRoute("default-project:fip:fip", "0.0.0.0", + 0, "default-project:fip", 4); //Add the routes in vrf2 in reverese order - AddRemoteEcmpRoute("vrf2", "0.0.0.0", 0, "fip", 4, true); + AddRemoteEcmpRoute("vrf2", "0.0.0.0", 0, "default-project:fip", 4, true); client->WaitForIdle(); - AddVrfAssignNetworkAcl("Acl", 10, "fip", "fip", "pass", "vrf2"); - AddLink("virtual-network", "fip", "access-control-list", "Acl"); + AddVrfAssignNetworkAcl("Acl", 10, "default-project:fip", + "default-project:fip", "pass", "vrf2"); + AddLink("virtual-network", "default-project:fip", + "access-control-list", "Acl"); client->WaitForIdle(); TxIpMplsPacket(eth_intf_id, MX_3, router_id, vm1_label, @@ -343,20 +356,23 @@ TEST_F(EcmpTest, EcmpTest_7) { FlowEntry *rev_entry = entry->reverse_flow_entry(); EXPECT_TRUE(rev_entry->data().component_nh_idx == CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); //Clean up - DeleteRoute("fip:fip", "0.0.0.0", 0, bgp_peer); - DelLink("virtual-machine-interface", "vnet1", "floating-ip", "fip1"); - DelLink("floating-ip-pool", "fip-pool1", "virtual-network", "fip"); - DelNode("floating-ip", "fip1"); - DelNode("floating-ip-pool", "fip-pool1"); + DeleteRoute("default-project:fip:fip", "0.0.0.0", 0, bgp_peer); + DelLink("virtual-machine-interface", "vnet1", + "floating-ip", "default-project:fip1"); + DelLink("floating-ip-pool", "default-project:fip-pool1", + "virtual-network", "default-project:fip"); + DelNode("floating-ip", "default-project:fip1"); + DelNode("floating-ip-pool", "default-project:fip-pool1"); client->WaitForIdle(); - DelLink("virtual-network", "fip", "routing-instance", "fip:fip"); - DelVrf("fip:fip"); - DelVn("fip"); + DelLink("virtual-network", "default-project:fip", + "routing-instance", "default-project:fip:fip"); + DelVrf("default-project:fip:fip"); + DelVn("default-project:fip"); client->WaitForIdle(); - WAIT_FOR(1000, 1000, (get_flow_proto()->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); } int main(int argc, char *argv[]) { diff --git a/src/vnsw/agent/pkt/test/test_fip_dst_ecmp.cc b/src/vnsw/agent/pkt/test/test_fip_dst_ecmp.cc index 00cfd63473e..3e7aec90cdc 100644 --- a/src/vnsw/agent/pkt/test/test_fip_dst_ecmp.cc +++ b/src/vnsw/agent/pkt/test/test_fip_dst_ecmp.cc @@ -27,7 +27,6 @@ class FipEcmpTest : public ::testing::Test { "xmpp channel"); client->WaitForIdle(); - flow_proto_ = agent_->pkt()->get_flow_proto(); CreateVmportWithEcmp(input1, 1); AddVn(VN2, 2); AddVrf(VRF2); @@ -37,7 +36,7 @@ class FipEcmpTest : public ::testing::Test { //Attach floating-ip //Add floating IP for vnet1 AddFloatingIpPool("fip-pool1", 1); - AddFloatingIp("fip1", 1, "2.1.1.1", "1.1.1.1"); + AddFloatingIp("fip1", 1, "2.1.1.1"); AddLink("floating-ip", "fip1", "floating-ip-pool", "fip-pool1"); AddLink("floating-ip-pool", "fip-pool1", "virtual-network", VN2); @@ -75,7 +74,7 @@ class FipEcmpTest : public ::testing::Test { client->WaitForIdle(); EXPECT_FALSE(VrfFind("vrf1", true)); EXPECT_FALSE(VrfFind("vrf2", true)); - WAIT_FOR(1000, 1000, (flow_proto_->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (agent_->pkt()->flow_table()->Size() == 0)); client->WaitForIdle(); } public: @@ -110,10 +109,8 @@ class FipEcmpTest : public ::testing::Test { PathPreference()); } - FlowProto *get_flow_proto() const { return flow_proto_; } Agent *agent_; Peer *bgp_peer; - FlowProto *flow_proto_; AgentXmppChannel *channel; char router_id[80]; char MX_0[80]; @@ -140,7 +137,7 @@ TEST_F(FipEcmpTest, Test_1) { EXPECT_TRUE(entry != NULL); EXPECT_TRUE(entry->data().component_nh_idx != CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(entry->data().nh_state_->nh() == rt->GetActiveNextHop()); rt = RouteGet(VRF2, Ip4Address::from_string("0.0.0.0"), 0); @@ -148,11 +145,11 @@ TEST_F(FipEcmpTest, Test_1) { FlowEntry *rev_entry = entry->reverse_flow_entry(); EXPECT_TRUE(rev_entry->data().component_nh_idx == CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); DeleteRoute(VRF2, "0.0.0.0", 0, bgp_peer); client->WaitForIdle(); - WAIT_FOR(1000, 1000, (get_flow_proto()->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); } //Packet from external ECMP source to fip @@ -168,17 +165,17 @@ TEST_F(FipEcmpTest, Test_2) { "1.1.1.1", "8.8.8.8", 1, 0, 0, GetFlowKeyNH(1)); EXPECT_TRUE(entry != NULL); EXPECT_TRUE(entry->data().component_nh_idx == 2); - EXPECT_TRUE(entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(entry->data().nh_state_->nh() == rt->GetActiveNextHop()); rt = RouteGet(VRF2, Ip4Address::from_string("0.0.0.0"), 0); FlowEntry *rev_entry = entry->reverse_flow_entry(); EXPECT_TRUE(rev_entry->data().component_nh_idx == CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); DeleteRoute(VRF2, "0.0.0.0", 0, bgp_peer); client->WaitForIdle(); - WAIT_FOR(1000, 1000, (get_flow_proto()->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); } int main(int argc, char *argv[]) { diff --git a/src/vnsw/agent/pkt/test/test_fip_src_ecmp.cc b/src/vnsw/agent/pkt/test/test_fip_src_ecmp.cc index ab7b617dfd9..e943286f2db 100644 --- a/src/vnsw/agent/pkt/test/test_fip_src_ecmp.cc +++ b/src/vnsw/agent/pkt/test/test_fip_src_ecmp.cc @@ -28,7 +28,6 @@ class FipEcmpTest : public ::testing::Test { "xmpp channel"); client->WaitForIdle(); - flow_proto_ = agent_->pkt()->get_flow_proto(); CreateVmportWithEcmp(input1, 2); AddVn(VN2, 2); AddVrf(VRF2); @@ -38,7 +37,7 @@ class FipEcmpTest : public ::testing::Test { //Attach floating-ip //Add floating IP for vnet1 AddFloatingIpPool("fip-pool1", 1); - AddFloatingIp("fip1", 1, "2.1.1.1", "1.1.1.1"); + AddFloatingIp("fip1", 1, "2.1.1.1"); AddLink("floating-ip", "fip1", "floating-ip-pool", "fip-pool1"); AddLink("floating-ip-pool", "fip-pool1", "virtual-network", VN2); @@ -76,14 +75,14 @@ class FipEcmpTest : public ::testing::Test { client->WaitForIdle(); EXPECT_FALSE(VrfFind("vrf1", true)); EXPECT_FALSE(VrfFind("vrf2", true)); - WAIT_FOR(1000, 1000, (flow_proto_->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); client->WaitForIdle(); } public: void AddLocalEcmpFip() { AddFloatingIpPool("fip-pool1", 1); - AddFloatingIp("fip1", 1, "2.1.1.1", "1.1.1.1"); + AddFloatingIp("fip1", 1, "2.1.1.1"); AddLink("floating-ip", "fip1", "floating-ip-pool", "fip-pool1"); AddLink("floating-ip-pool", "fip-pool1", "virtual-network", VN2); @@ -161,10 +160,8 @@ class FipEcmpTest : public ::testing::Test { PathPreference()); } - FlowProto *get_flow_proto() const { return flow_proto_; } Agent *agent_; Peer *bgp_peer; - FlowProto *flow_proto_; AgentXmppChannel *channel; char router_id[80]; char MX_0[80]; @@ -195,7 +192,7 @@ TEST_F(FipEcmpTest, Test_1) { EXPECT_TRUE(entry != NULL); EXPECT_TRUE(entry->data().component_nh_idx != CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(entry->data().nh.get() == rt->GetLocalNextHop()); + EXPECT_TRUE(entry->data().nh_state_->nh() == rt->GetLocalNextHop()); rt = static_cast( @@ -204,12 +201,12 @@ TEST_F(FipEcmpTest, Test_1) { FlowEntry *rev_entry = entry->reverse_flow_entry(); EXPECT_TRUE(rev_entry->data().component_nh_idx == CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); DeleteRoute(VRF2, "0.0.0.0", 0, bgp_peer); DeleteRemoteEcmpFip(); - client->WaitForIdle(); - WAIT_FOR(1000, 1000, (get_flow_proto()->FlowCount() == 0)); + client->WaitForIdle(); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); } //Packet from external ECMP source to fip in ECMP @@ -229,7 +226,7 @@ TEST_F(FipEcmpTest, Test_2) { "1.1.1.1", "8.8.8.8", 1, 0, 0, GetFlowKeyNH(1)); EXPECT_TRUE(entry != NULL); EXPECT_TRUE(entry->data().component_nh_idx == 2); - EXPECT_TRUE(entry->data().nh.get() == rt->GetLocalNextHop()); + EXPECT_TRUE(entry->data().nh_state_->nh() == rt->GetLocalNextHop()); rt = static_cast( RouteGet(VRF2, Ip4Address::from_string("0.0.0.0"), 0)); @@ -237,12 +234,12 @@ TEST_F(FipEcmpTest, Test_2) { FlowEntry *rev_entry = entry->reverse_flow_entry(); EXPECT_TRUE(rev_entry->data().component_nh_idx == CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); DeleteRoute(VRF2, "0.0.0.0", 0, bgp_peer); DeleteRemoteEcmpFip(); client->WaitForIdle(); - WAIT_FOR(1000, 1000, (get_flow_proto()->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); } //Packet from VM with ECMP FIP to destination ECMP @@ -264,7 +261,7 @@ TEST_F(FipEcmpTest, Test_3) { EXPECT_TRUE(entry != NULL); EXPECT_TRUE(entry->data().component_nh_idx != CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(entry->data().nh.get() == rt->GetLocalNextHop()); + EXPECT_TRUE(entry->data().nh_state_->nh() == rt->GetLocalNextHop()); rt = static_cast( RouteGet(VRF2, Ip4Address::from_string("0.0.0.0"), 0)); @@ -272,12 +269,12 @@ TEST_F(FipEcmpTest, Test_3) { FlowEntry *rev_entry = entry->reverse_flow_entry(); EXPECT_TRUE(rev_entry->data().component_nh_idx != CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); DeleteRoute(VRF2, "0.0.0.0", 32, bgp_peer); DeleteLocalEcmpFip(); client->WaitForIdle(); - WAIT_FOR(1000, 1000, (get_flow_proto()->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); } //Packet from external ECMP source to fip in ECMP @@ -300,7 +297,7 @@ TEST_F(FipEcmpTest, Test_4) { "1.1.1.1", "8.8.8.8", 1, 0, 0, GetFlowKeyNH(1)); EXPECT_TRUE(entry != NULL); EXPECT_TRUE(entry->data().component_nh_idx == 2); - EXPECT_TRUE(entry->data().nh.get() == rt->GetLocalNextHop()); + EXPECT_TRUE(entry->data().nh_state_->nh() == rt->GetLocalNextHop()); rt = static_cast( RouteGet(VRF2, Ip4Address::from_string("0.0.0.0"), 0)); @@ -308,12 +305,12 @@ TEST_F(FipEcmpTest, Test_4) { FlowEntry *rev_entry = entry->reverse_flow_entry(); EXPECT_TRUE(rev_entry->data().component_nh_idx == CompositeNH::kInvalidComponentNHIdx); - EXPECT_TRUE(rev_entry->data().nh.get() == rt->GetActiveNextHop()); + EXPECT_TRUE(rev_entry->data().nh_state_->nh() == rt->GetActiveNextHop()); DeleteRoute(VRF2, "0.0.0.0", 0, bgp_peer); DeleteLocalEcmpFip(); client->WaitForIdle(); - WAIT_FOR(1000, 1000, (get_flow_proto()->FlowCount() == 0)); + WAIT_FOR(1000, 1000, (0U == agent_->pkt()->flow_table()->Size())); } int main(int argc, char *argv[]) {