5 #ifndef vnsw_agent_dns_proto_hpp
6 #define vnsw_agent_dns_proto_hpp
10 #include "vnc_cfg_types.h"
37 DnsIpc(uint8_t *msg, std::size_t len, uint16_t
id,
56 const std::string &ovdns,
const std::string &dom,
57 uint32_t ttl_value,
bool is_floating)
90 if (lhs->
itf != rhs->itf)
91 return lhs->
itf < rhs->itf;
95 return tmp(lhs->
xmpp_data, rhs->xmpp_data);
138 typedef std::set<DnsFipEntryPtr, DnsFipEntryCmp>
DnsFipSet;
145 typedef std::map<const VmInterface *, IpVdnsMap>
VmDataMap;
146 typedef std::pair<const VmInterface *, IpVdnsMap>
VmDataPair;
158 boost::asio::io_context &io);
162 const std::string &vdns_name,
163 const autogen::VirtualDnsType &vdns_type,
164 bool is_floating,
bool is_delete);
171 void SendDnsIpc(uint8_t *pkt, std::size_t length);
177 const std::string &old_vdns,
178 const std::string &new_dom,
179 uint32_t ttl,
bool is_floating);
230 void ProcessNotify(std::string name,
bool is_deleted,
bool is_ipam);
233 const Ip6Address &ip6, std::string &vdns_name,
234 const autogen::VirtualDnsType &vdns_type);
236 const autogen::VirtualDnsType &vdns_type);
238 const std::string &vm_name,
239 const std::string &vdns_name,
242 bool is_floating,
bool is_deleted);
244 std::string &new_vdns_name,
245 std::string &old_vdns_name,
246 const autogen::VirtualDnsType &vdns_type,
249 const Ip6Address &v6_addr, std::string &vdns_name,
250 autogen::VirtualDnsType &vdns_type);
252 const autogen::VirtualDnsType &vdns_type,
253 const IpAddress &ip, std::string &fip_name)
const;
275 #endif // vnsw_agent_dns_proto_hpp
bool IsLess(const DnsFipEntry *rhs) const
bool UpdateDnsEntry(const VmInterface *vmitf, const VnEntry *vn, const std::string &vm_name, const std::string &vdns_name, const Ip4Address &ip, const Ip6Address &ip6, bool is_floating, bool is_deleted)
void DelVmRequest(DnsHandler::QueryKey *key)
DnsUpdateData * xmpp_data
DnsIpc(uint8_t *msg, std::size_t len, uint16_t id, DnsHandler *h, InterTaskMessage cmd)
DnsUpdateAllIpc(AgentDnsXmppChannel *ch)
bool GetVdnsData(const VnEntry *vn, const Ip4Address &v4_addr, const Ip6Address &v6_addr, std::string &vdns_name, autogen::VirtualDnsType &vdns_type)
int16_t GetDnsQueryServerIndex(uint16_t xid)
bool SendUpdateDnsEntry(const VmInterface *vmitf, const std::string &name, const Ip4Address &ip, uint32_t plen, const Ip6Address &ip6, uint32_t plen6, const std::string &vdns_name, const autogen::VirtualDnsType &vdns_type, bool is_floating, bool is_delete)
void DelDnsQuery(uint16_t xid)
DnsUpdateIpc(DnsAgentXmpp::XmppType type, DnsUpdateData *data, const VmInterface *vm, bool floating)
DnsProto(Agent *agent, boost::asio::io_context &io)
DnsUpdateIpc(const VmInterface *vm, const std::string &nvdns, const std::string &ovdns, const std::string &dom, uint32_t ttl_value, bool is_floating)
boost::asio::ip::address IpAddress
const DnsStats & GetStats() const
void VnNotify(DBEntryBase *entry)
void InterfaceNotify(DBEntryBase *entry)
void DelUpdateRequest(DnsUpdateIpc *ipc)
void DelDnsQueryIndex(uint16_t xid)
void IpamNotify(IFMapNode *node)
void DelDnsQueryHandler(DnsHandler *handler)
void set_timeout(uint32_t timeout)
DBTableBase::ListenerId lid_
void IncrStatsRetransmitReq()
uint32_t max_retries() const
std::pair< uint32_t, std::string > IpVdnsPair
DnsFipEntry(const VnEntry *vn, const IpAddress &fip, const VmInterface *itf)
void AddDnsQueryIndex(uint16_t xid, int16_t srv_idx)
DnsVmRequestSet curr_vm_requests_
void AddUpdateRequest(DnsUpdateIpc *ipc)
void VrfNotify(DBEntryBase *entry)
bool MoveVDnsEntry(const VmInterface *vmitf, std::string &new_vdns_name, std::string &old_vdns_name, const autogen::VirtualDnsType &vdns_type, bool is_floating)
const DnsFipSet & fip_list() const
const VmInterface * interface_
bool IsDnsQueryInProgress(uint16_t xid)
std::map< uint32_t, int16_t > DnsBindQueryIndexMap
bool IsDnsHandlerInUse(DnsHandler *handler)
ProtoHandler * AllocProtoHandler(boost::shared_ptr< PktInfo > info, boost::asio::io_context &io)
bool operator()(DnsUpdateIpc *const &lhs, DnsUpdateIpc *const &rhs) const
std::set< DnsUpdateIpc *, UpdateCompare > DnsUpdateSet
void SendDnsIpc(uint8_t *pkt, std::size_t length)
bool BuildDefaultServerList()
void ProcessNotify(std::string name, bool is_deleted, bool is_ipam)
DefaultServerList def_server_list_
boost::asio::ip::address_v6 Ip6Address
DBTableBase::ListenerId vrf_table_listener_id_
std::pair< uint32_t, int16_t > DnsBindQueryIndexPair
void set_max_retries(uint32_t retries)
void AddDnsQuery(uint16_t xid, DnsHandler *handler)
DnsHandler * GetDnsQueryHandler(uint16_t xid)
std::pair< uint32_t, DnsHandler * > DnsBindQueryPair
std::pair< const VmInterface *, IpVdnsMap > VmDataPair
bool operator()(const DnsFipEntryPtr &lhs, const DnsFipEntryPtr &rhs) const
boost::asio::ip::address_v4 Ip4Address
void AddVmRequest(DnsHandler::QueryKey *key)
void SendDnsUpdateIpc(DnsUpdateData *data, DnsAgentXmpp::XmppType type, const VmInterface *vm, bool floating)
DefaultServerList GetDefaultServerList()
const DnsUpdateSet & update_set() const
DefaultServerList BuildDefaultServerListImpl()
static const uint32_t kDnsDefaultTtl
std::vector< IpAddress > DefaultServerList
bool UpdateFloatingIp(const VmInterface *vmitf, const VnEntry *vn, const IpAddress &ip, bool is_deleted)
static const Ip6Address ip6_unspec_
const VmDataMap & all_vms() const
static const Ip4Address ip4_unspec_
boost::shared_ptr< DnsFipEntry > DnsFipEntryPtr
bool GetFipName(const VmInterface *vmitf, const autogen::VirtualDnsType &vdns_type, const IpAddress &ip, std::string &fip_name) const
AgentDnsXmppChannel * channel
static const uint32_t kDnsDefaultSlistInterval
Timer * default_slist_timer_
std::map< uint32_t, DnsHandler * > DnsBindQueryMap
DnsBindQueryMap dns_query_map_
void CheckForFipUpdate(DnsFipEntry *entry, std::string &vdns_name, const autogen::VirtualDnsType &vdns_type)
std::map< uint32_t, std::string > IpVdnsMap
DBTableBase::ListenerId Vnlid_
DISALLOW_COPY_AND_ASSIGN(DnsProto)
std::map< const VmInterface *, IpVdnsMap > VmDataMap
DnsUpdateIpc * FindUpdateRequest(DnsUpdateIpc *ipc)
std::set< DnsHandler::QueryKey > DnsVmRequestSet
DnsBindQueryIndexMap dns_query_index_map_
std::set< DnsFipEntryPtr, DnsFipEntryCmp > DnsFipSet
bool IsVmRequestDuplicate(DnsHandler::QueryKey *key)
void CheckForUpdate(IpVdnsMap &ipvdns, const VmInterface *vmitf, const VnEntry *vn, const Ip4Address &ip, const Ip6Address &ip6, std::string &vdns_name, const autogen::VirtualDnsType &vdns_type)
void VdnsNotify(IFMapNode *node)