6 #include <vnc_cfg_types.h>
16 boost::system::error_code ec;
17 ip_prefix = IpAddress::from_string(ip, ec);
35 return (plen < rhs->
plen);
84 autogen::VirtualRouter *cfg =
static_cast<autogen::VirtualRouter *
>
91 FindAdjacentIFMapNode(node,
"virtual-router-network-ipam");
97 autogen::VirtualRouterNetworkIpam *vr_ipam =
98 static_cast<autogen::VirtualRouterNetworkIpam *
>
100 const autogen::VirtualRouterNetworkIpamType &data = vr_ipam->data();
101 std::vector<autogen::SubnetType>::const_iterator it =
103 while (it != data.subnet.end()) {
105 new_subnet_list.insert(subnet);
110 bool changed = AuditList<VRouter, VRouterSubnetSet::iterator>
112 new_subnet_list.begin(), new_subnet_list.end());
115 ReEvaluateRouteExports();
135 GetInet4UnicastRouteTable())->AddVrouterSubnetRoute(subnet.
ip_prefix,
143 GetInet4UnicastRouteTable())->DeleteReq
148 GetInet6UnicastRouteTable())->DeleteReq
166 if (v4 && it->ip_prefix.is_v4()) {
171 }
else if (!v4 && it->ip_prefix.is_v6()) {
190 resp->set_name(
name_);
192 vector<VnIpamData> list;
196 item.set_ip_prefix(it->ip_prefix.to_string());
197 item.set_prefix_len(it->plen);
198 list.push_back(item);
201 resp->set_subnet_list(list);
204 void VrouterInfoReq::HandleRequest()
const {
207 VrouterInfoResp *resp =
new VrouterInfoResp();
208 resp->set_context(context());
210 resp->set_more(
false);
215 resp->set_more(
false);
std::string display_name_
void FillSandeshInfo(VrouterInfoResp *resp)
void DeleteRoute(const VRouterSubnet &subnet)
static Agent * GetInstance()
RouteLeakManager * route_leak_manager() const
bool IsSubnetMember(const IpAddress &addr) const
void DeleteSubnetRoutes()
VrfEntry * fabric_vrf() const
bool IsIp4SubnetMember(const Ip4Address &ip, const Ip4Address &prefix_ip, uint16_t plen)
ConfigManager * config_manager() const
boost::asio::ip::address IpAddress
virtual const char * Typename() const =0
uint32_t SubnetCount() const
adjacency_iterator end(DBGraph *graph)
const string & GetName() const
void AddVirtualRouterNode(IFMapNode *node)
void ConfigAddChange(IFMapNode *node)
void Remove(VRouterSubnetSet::iterator &it)
std::set< VRouterSubnet, VRouterSubnet > VRouterSubnetSet
const DBGraph * GetGraph() const
bool IsLess(const VRouterSubnet *rhs) const
VRouter * vrouter() const
void AddRoute(const VRouterSubnet &subnet)
void ReEvaluateRouteExports()
bool operator==(const VRouterSubnet &rhs) const
VRouterSubnetSet subnet_list_
const std::string & name() const
IFMapObject * GetObject()
void ConfigManagerEnqueue(IFMapNode *node)
void Insert(const VRouterSubnet *rhs)
IFMapNode * FindTarget(IFMapNode *node, std::string node_type) const
const Peer * fabric_rt_export_peer() const
bool operator()(const VRouterSubnet &lhs, const VRouterSubnet &rhs) const
adjacency_iterator begin(DBGraph *graph)
bool IsIp6SubnetMember(const Ip6Address &ip, const Ip6Address &subnet, uint8_t plen)
void ConfigDelete(IFMapNode *node)