5 #ifndef __dns_manager_h__
6 #define __dns_manager_h__
38 PendingList(uint16_t
id,
const std::string &v,
const std::string &z,
40 uint32_t recount = 0) {
58 const std::string& named_config_dir,
59 const std::string& named_config_file,
60 const std::string& named_log_file,
61 const std::string& rndc_config_file,
62 const std::string& rndc_secret,
63 const std::string& named_max_cache_size,
64 const uint16_t named_max_retransmissions,
65 const uint16_t named_retransmission_interval);
74 const std::string &zone,
DnsItems &items);
76 const std::string &view,
const std::string &zone,
77 DnsItems &items, uint32_t retranmit_count);
82 template <
typename ConfigType>
86 const std::string &vdns_name,
const DnsItem &item);
102 void VdnsRecordsMsgHandler(
const std::string &key,
const std::string &context,
bool show_all =
false)
const;
106 VirtualDnsConfig::DataMap::iterator vdns_iter,
const std::string &key,
const std::string &req_name)
const;
116 const std::string &zone,
const DnsItems &items,
119 const std::string &zone,
141 inline bool CheckName(std::string rec_name, std::string name);
165 #endif // __dns_manager_h__
void NotifyReverseDnsRecords(const VirtualDnsConfig *config, DnsConfig::DnsConfigEvent ev, bool notify)
void MakeSandeshPageReq(PageReqData *req, VirtualDnsConfig::DataMap &vdns, VirtualDnsConfig::DataMap::iterator vdns_it, VirtualDnsConfig::DataMap::iterator vdns_iter, const std::string &key, const std::string &req_name) const
ConfigClientManager * config_client_manager_
void DnsView(const DnsConfig *config, DnsConfig::DnsConfigEvent ev)
bool CheckName(std::string rec_name, std::string name)
void set_config_manager(ConfigClientManager *config_manager)
bool CheckZoneDelete(ZoneList &zones, PendingList &pend)
PendingList(uint16_t id, const std::string &v, const std::string &z, const DnsItems &it, BindUtil::Operation o, uint32_t recount=0)
void StartPendingTimer(int)
bool named_send_throttled_
void HandleUpdateResponse(uint8_t *pkt, std::size_t length)
uint16_t named_lo_watermark_
std::pair< uint16_t, PendingList > DeportedPendingListPair
DnsConfigManager config_mgr_
void NotifyThrottledDnsRecords()
uint16_t named_max_retransmissions_
void BindPendingMsgHandler(const std::string &key, const std::string &context) const
void DeletePendingList(uint16_t xid)
static const uint16_t kNamedHiWaterMark
void ClearDeportedPendingList()
bool ResendRecordsinBatch()
std::list< DnsItem > DnsItems
PendingListMap pending_map_
static const uint16_t kNamedLoWaterMark
void Initialize(DB *config_db, DBGraph *config_graph, const std::string &named_config_dir, const std::string &named_config_file, const std::string &named_log_file, const std::string &rndc_config_file, const std::string &rndc_secret, const std::string &named_max_cache_size, const uint16_t named_max_retransmissions, const uint16_t named_retransmission_interval)
PendingListMap GetDeportedPendingListMap()
ConfigClientManager * get_config_manager()
void CancelEndofConfigTimer()
bool SendRecordUpdate(BindUtil::Operation op, const VirtualDnsRecordConfig *config)
void StartEndofConfigTimer()
void VdnsServersMsgHandler(const std::string &key, const std::string &context) const
bool GetEndOfRibComputed() const
bool PendingTimerExpiry()
void DnsPtrZone(const Subnet &subnet, const VirtualDnsConfig *vdns, DnsConfig::DnsConfigEvent ev)
static const uint16_t kPendingRecordReScheduleTime
static const uint16_t kMaxRetransmitCount
void ProcessAgentUpdate(BindUtil::Operation event, const std::string &name, const std::string &vdns_name, const DnsItem &item)
static const uint16_t kMaxIndexAllocator
void SendRetransmit(uint16_t xid, BindUtil::Operation op, const std::string &view, const std::string &zone, DnsItems &items, uint32_t retranmit_count)
void BindEventHandler(BindStatus::Event ev)
std::pair< uint16_t, PendingList > PendingListPair
uint32_t retransmit_count
static uint16_t g_trans_id_
void DnsConfigMsgHandler(const std::string &key, const std::string &context) const
bool PendingDone(uint16_t xid)
void DnsRecord(const DnsConfig *config, DnsConfig::DnsConfigEvent ev)
static const int kEndOfConfigCheckTime
bool EndofConfigTimerExpiry()
std::map< uint16_t, PendingList > DeportedPendingListMap
void PendingListViewDelete(const VirtualDnsConfig *config)
void VdnsRecordsMsgHandler(const std::string &key, const std::string &context, bool show_all=false) const
uint16_t named_hi_watermark_
void ProcessConfig(IFMapNodeProxy *proxy, const std::string &name, DnsConfigManager::EventType event)
DISALLOW_COPY_AND_ASSIGN(DnsManager)
void UpdatePendingList(const std::string &view, const std::string &zone, const DnsItems &items)
DeportedPendingListMap dp_pending_map_
bool SendUpdate(BindUtil::Operation op, const std::string &view, const std::string &zone, DnsItems &items)
static const int max_records_per_sandesh
void ResetTransId(uint16_t)
void NotifyAllDnsRecords(const VirtualDnsConfig *config, DnsConfig::DnsConfigEvent ev)
std::map< std::string, VirtualDnsConfig * > DataMap
Timer * end_of_config_check_timer_
void PendingListZoneDelete(const Subnet &subnet, const VirtualDnsConfig *config)
std::map< uint16_t, PendingList > PendingListMap
uint32_t record_send_count_
uint16_t named_retransmission_interval_
bool AddPendingList(uint16_t xid, const std::string &view, const std::string &zone, const DnsItems &items, BindUtil::Operation op)
DnsConfigManager & GetConfigManager()
void CancelPendingTimer()
WorkQueue< uint16_t > pending_done_queue_
std::vector< std::string > ZoneList
friend class DnsManagerTest