diff options
author | Neale Ranns <nranns@cisco.com> | 2019-06-28 08:38:33 -0700 |
---|---|---|
committer | Neale Ranns <nranns@cisco.com> | 2019-07-01 05:26:46 -0700 |
commit | 641faf52e04ab3193dd0638aa5c8855550dfb38c (patch) | |
tree | e8cbbec93515dca87211d937f5e246840a1b3703 /src/VppEndPointGroupManager.cpp | |
parent | cfe7e09fa2fb7348afd188f103c14920ce2e73c6 (diff) |
VRF scoped contracts
Change-Id: I99fcb9d4425de9b6dbc4987b14162afcae60ac6d
Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/VppEndPointGroupManager.cpp')
-rw-r--r-- | src/VppEndPointGroupManager.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/VppEndPointGroupManager.cpp b/src/VppEndPointGroupManager.cpp index 38c3e27..e0cc81d 100644 --- a/src/VppEndPointGroupManager.cpp +++ b/src/VppEndPointGroupManager.cpp @@ -259,11 +259,11 @@ EndPointGroupManager::mk_gbp_rd(Runtime &r, vt_v4 = spine_proxy->mk_v4(key, vnid); vt_v6 = spine_proxy->mk_v6(key, vnid); - grd = std::make_shared<gbp_route_domain>(rd, vt_v4, vt_v6); + grd = std::make_shared<gbp_route_domain>(rd, rd.key(), vt_v4, vt_v6); } else { - grd = std::make_shared<gbp_route_domain>(rd); + grd = std::make_shared<gbp_route_domain>(rd, rd.key()); } OM::write(key, *grd); @@ -426,7 +426,7 @@ EndPointGroupManager::mk_group(Runtime &runtime, * construct a BD that uses the MAC spine proxy as the * UU-fwd interface */ - gbp_bridge_domain gbd(bd, bvi, vt_mac, vt_mc, gbd_flags); + gbp_bridge_domain gbd(bd, *grd, bvi, vt_mac, vt_mc, gbd_flags); OM::write(key, gbd); /* @@ -468,12 +468,13 @@ EndPointGroupManager::mk_group(Runtime &runtime, } OM::write(key, l2_upl); - gbp_bridge_domain gbd(bd, *bvi); - OM::write(key, gbd); - - gbp_route_domain grd(rd); + /* Use the generated RD ID as a unique scope */ + gbp_route_domain grd(rd, rd.key()); OM::write(key, grd); + gbp_bridge_domain gbd(bd, grd, *bvi); + OM::write(key, gbd); + gepg = std::make_shared<gbp_endpoint_group>( fwd.vnid, fwd.sclass, *encap_link, grd, gbd); } @@ -521,8 +522,7 @@ EndPointGroupManager::handle_update(const opflex::modb::URI &epgURI) std::shared_ptr<interface> bvi = gepg->get_bridge_domain()->get_bvi(); std::shared_ptr<bridge_domain> bd = gepg->get_bridge_domain()->get_bridge_domain(); - std::shared_ptr<route_domain> rd = - gepg->get_route_domain()->get_route_domain(); + std::shared_ptr<gbp_route_domain> grd = gepg->get_route_domain(); /* * The BVI is the NAT inside interface for the VMs @@ -573,7 +573,7 @@ EndPointGroupManager::handle_update(const opflex::modb::URI &epgURI) route::prefix_t pfx(sn->getAddress().get(), sn->getPrefixLen().get()); - gbp_subnet gs(*rd, + gbp_subnet gs(*grd, pfx.low(), (gepg->get_route_domain()->get_ip4_uu_fwd() ? gbp_subnet::type_t::TRANSPORT |