7 #include <vnc_cfg_types.h>
15 #include <sandesh/sandesh_trace.h>
20 boost::system::error_code ec;
21 ip_prefix = IpAddress::from_string(ip, ec);
39 return (plen < rhs->
plen);
88 autogen::VirtualRouter *cfg =
static_cast<autogen::VirtualRouter *
>
96 const std::vector<autogen::KeyValuePair> &tblengths =
97 cfg->tracebuffer_length();
99 for (
const auto& kv_pair : tblengths) {
101 new_buf_size = boost::lexical_cast<int>(kv_pair.value);
102 }
catch (
const boost::bad_lexical_cast& e) {
105 if (new_buf_size <= 0) {
113 cfg->agent_uve_incremental_interval());
114 if (cfg->agent_stats_collector_interval() > 0) {
116 cfg->agent_stats_collector_interval());
119 agent()->params()->agent_stats_interval());
125 FindAdjacentIFMapNode(node,
"virtual-router-network-ipam");
131 autogen::VirtualRouterNetworkIpam *vr_ipam =
132 static_cast<autogen::VirtualRouterNetworkIpam *
>
134 const autogen::VirtualRouterNetworkIpamType &data = vr_ipam->data();
135 std::vector<autogen::SubnetType>::const_iterator it =
137 while (it != data.subnet.end()) {
139 new_subnet_list.insert(subnet);
144 bool changed = AuditList<VRouter, VRouterSubnetSet::iterator>
146 new_subnet_list.begin(), new_subnet_list.end());
149 ReEvaluateRouteExports();
165 GetInet4UnicastRouteTable())->AddVrouterSubnetRoute(subnet.
ip_prefix,
173 GetInet4UnicastRouteTable())->DeleteReq
178 GetInet6UnicastRouteTable())->DeleteReq
196 if (v4 && it->ip_prefix.is_v4()) {
201 }
else if (!v4 && it->ip_prefix.is_v6()) {
220 resp->set_name(
name_);
222 vector<VnIpamData> list;
226 item.set_ip_prefix(it->ip_prefix.to_string());
227 item.set_prefix_len(it->plen);
228 list.push_back(item);
231 resp->set_subnet_list(list);
234 void VrouterInfoReq::HandleRequest()
const {
237 VrouterInfoResp *resp =
new VrouterInfoResp();
238 resp->set_context(context());
240 resp->set_more(
false);
245 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)
void set_incremental_interval(uint32_t new_interval=kIncrementalInterval)
Sets the incremental interval (time between dispatches of Agent's information and its remnant to UVE)...
void set_default_interval(uint32_t new_interval=kDefaultInterval)
Sets the default interval (time between two dispatches of Agent's information to UVE).
ConfigManager * config_manager() const
AgentUveBase * uve() const
const Peer * fabric_rt_export_peer() const
AgentStatsCollector * stats_collector() 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()
void set_expiry_time(int time)
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