6 #include <vnc_cfg_types.h>
14 #include <sandesh/sandesh_trace.h>
17 boost::system::error_code ec;
18 ip_prefix = IpAddress::from_string(ip, ec);
36 return (plen < rhs->
plen);
85 autogen::VirtualRouter *cfg =
static_cast<autogen::VirtualRouter *
>
89 const std::vector<autogen::KeyValuePair> &tblengths =
90 cfg->tracebuffer_length();
92 for (
const auto& kv_pair : tblengths) {
94 new_buf_size = boost::lexical_cast<int>(kv_pair.value);
95 }
catch (
const boost::bad_lexical_cast& e) {
98 if (new_buf_size <= 0) {
106 FindAdjacentIFMapNode(node,
"virtual-router-network-ipam");
112 autogen::VirtualRouterNetworkIpam *vr_ipam =
113 static_cast<autogen::VirtualRouterNetworkIpam *
>
115 const autogen::VirtualRouterNetworkIpamType &data = vr_ipam->data();
116 std::vector<autogen::SubnetType>::const_iterator it =
118 while (it != data.subnet.end()) {
120 new_subnet_list.insert(subnet);
125 bool changed = AuditList<VRouter, VRouterSubnetSet::iterator>
127 new_subnet_list.begin(), new_subnet_list.end());
130 ReEvaluateRouteExports();
150 GetInet4UnicastRouteTable())->AddVrouterSubnetRoute(subnet.
ip_prefix,
158 GetInet4UnicastRouteTable())->DeleteReq
163 GetInet6UnicastRouteTable())->DeleteReq
181 if (v4 && it->ip_prefix.is_v4()) {
186 }
else if (!v4 && it->ip_prefix.is_v6()) {
205 resp->set_name(
name_);
207 vector<VnIpamData> list;
211 item.set_ip_prefix(it->ip_prefix.to_string());
212 item.set_prefix_len(it->plen);
213 list.push_back(item);
216 resp->set_subnet_list(list);
219 void VrouterInfoReq::HandleRequest()
const {
222 VrouterInfoResp *resp =
new VrouterInfoResp();
223 resp->set_context(context());
225 resp->set_more(
false);
230 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
SandeshTraceBufferPtr SandeshTraceBufferResetSize(const std::string &buf_name, size_t buf_size)
bool operator==(const VRouterSubnet &rhs) const
bool operator()(const VRouterSubnet &lhs, const VRouterSubnet &rhs) const
bool IsLess(const VRouterSubnet *rhs) const