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);
boost::asio::ip::address IpAddress
bool IsIp6SubnetMember(const Ip6Address &ip, const Ip6Address &subnet, uint8_t plen)
bool IsIp4SubnetMember(const Ip4Address &ip, const Ip4Address &prefix_ip, uint16_t plen)
ConfigManager * config_manager() const
const Peer * fabric_rt_export_peer() const
VrfEntry * fabric_vrf() const
static Agent * GetInstance()
void AddVirtualRouterNode(IFMapNode *node)
adjacency_iterator end(DBGraph *graph)
adjacency_iterator begin(DBGraph *graph)
const DBGraph * GetGraph() const
const std::string & name() const
IFMapObject * GetObject()
virtual const char * Typename() const =0
RouteLeakManager * route_leak_manager() const
VRouter * vrouter() const
void ReEvaluateRouteExports()
bool IsSubnetMember(const IpAddress &addr) const
std::set< VRouterSubnet, VRouterSubnet > VRouterSubnetSet
void AddRoute(const VRouterSubnet &subnet)
void ConfigManagerEnqueue(IFMapNode *node)
void Insert(const VRouterSubnet *rhs)
void DeleteRoute(const VRouterSubnet &subnet)
IFMapNode * FindTarget(IFMapNode *node, std::string node_type) const
void ConfigAddChange(IFMapNode *node)
void ConfigDelete(IFMapNode *node)
VRouterSubnetSet subnet_list_
std::string display_name_
void Remove(VRouterSubnetSet::iterator &it)
void FillSandeshInfo(VrouterInfoResp *resp)
void DeleteSubnetRoutes()
uint32_t SubnetCount() const
const string & GetName() const
bool operator==(const VRouterSubnet &rhs) const
bool operator()(const VRouterSubnet &lhs, const VRouterSubnet &rhs) const
bool IsLess(const VRouterSubnet *rhs) const