5 #ifndef vnsw_agent_dhcp_handler_base_hpp
6 #define vnsw_agent_dhcp_handler_base_hpp
10 #include "vnc_cfg_types.h"
12 #define DHCP_BASE_TRACE(arg) \
14 std::ostringstream _str; \
16 DhcpTrace(_str.str()); \
72 virtual void WriteData(uint8_t c, uint8_t l,
const void *d,
73 uint16_t *optlen) = 0;
74 virtual void AppendData(uint16_t l,
const void *d,
75 uint16_t *optlen) = 0;
76 virtual uint16_t
GetCode()
const = 0;
77 virtual uint16_t
GetLen()
const = 0;
80 virtual void SetCode(uint16_t len) = 0;
81 virtual void SetLen(uint16_t len) = 0;
82 virtual void AddLen(uint16_t len) = 0;
88 boost::asio::io_context &io);
94 const std::string &input);
96 const std::string &input);
98 const std::string &input);
100 const std::string &input);
102 const std::string &input);
104 const std::string &input);
106 const std::string &input,
bool array);
107 bool IsValidIpOption(uint32_t option,
const std::string &ipstr,
bool is_v4);
110 const std::string &input, uint8_t min_count,
111 uint8_t max_count, uint8_t multiples);
113 const std::string &input,
bool list);
114 virtual uint16_t
AddIP(uint16_t opt_len,
115 const std::string &input) = 0;
117 const std::string &input,
bool list);
119 const std::string &input);
123 const std::string &input);
127 std::vector<autogen::DhcpOptionType> &
options,
132 virtual void DhcpTrace(
const std::string &msg)
const = 0;
135 virtual uint32_t
OptionCode(
const std::string &option)
const = 0;
168 #endif // vnsw_agent_dhcp_handler_base_hpp
void ReadClasslessRoute(uint32_t option, uint16_t opt_len, const std::string &input)
uint16_t AddNoDataOption(uint32_t option, uint16_t opt_len)
uint16_t AddByteOption(uint32_t option, uint16_t opt_len, const std::string &input)
bool IsValidIpOption(uint32_t option, const std::string &ipstr, bool is_v4)
virtual uint16_t AddIP(uint16_t opt_len, const std::string &input)=0
void FindDomainName(const IpAddress &vm_addr)
uint16_t AddConfigDhcpOptions(uint16_t opt_len, bool is_v6)
boost::scoped_ptr< DhcpOptionHandler > option_
virtual uint16_t GetCode() const =0
virtual void AppendData(uint16_t l, const void *d, uint16_t *optlen)=0
virtual void SetLen(uint16_t len)=0
boost::asio::ip::address IpAddress
uint16_t AddIntegerOption(uint32_t option, uint16_t opt_len, const std::string &input)
virtual void AddLen(uint16_t len)=0
std::vector< OperDhcpOptions::HostRoute > host_routes_
uint16_t AddCompressedName(uint16_t opt_len, const std::string &input)
uint16_t AddByteCompressedNameOption(uint32_t option, uint16_t opt_len, const std::string &input)
virtual void SetNextOptionPtr(uint16_t optlen)=0
uint16_t AddDnsServers(uint16_t opt_len)
uint16_t AddClasslessRouteOption(uint16_t opt_len)
bool IsValidDnsOption(uint32_t option, const std::string &ipstr)
virtual DhcpOptionCategory OptionCategory(uint32_t option) const =0
DhcpOptionLevel host_routes_level_
uint16_t AddCompressedNameOption(uint32_t option, uint16_t opt_len, const std::string &input, bool list)
bool CanOverrideWithBytes(DhcpOptionCategory category)
uint16_t AddByteArrayOption(uint32_t option, uint16_t opt_len, const std::string &input)
uint16_t AddByteIPOption(uint32_t option, uint16_t opt_len, const std::string &input)
virtual ~DhcpOptionHandler()
std::bitset< 256 > flags_
virtual void WriteData(uint8_t c, uint8_t l, const void *d, uint16_t *optlen)=0
uint16_t AddIpv4Option(uint32_t option, uint16_t opt_len, const std::string &input, uint8_t min_count, uint8_t max_count, uint8_t multiples)
DISALLOW_COPY_AND_ASSIGN(DhcpHandlerBase)
uint16_t AddIpv6Option(uint32_t option, uint16_t opt_len, const std::string &input, bool list)
virtual uint8_t * GetData()=0
virtual uint16_t GetLen() const =0
uint16_t AddByteStringOption(uint32_t option, uint16_t opt_len, const std::string &input)
virtual uint32_t OptionCode(const std::string &option) const =0
DhcpHandlerBase(Agent *agent, boost::shared_ptr< PktInfo > info, boost::asio::io_context &io)
autogen::VirtualDnsType vdns_type_
virtual ~DhcpHandlerBase()
virtual void SetCode(uint16_t len)=0
virtual void DhcpTrace(const std::string &msg) const =0
virtual void SetDhcpOptionPtr(uint8_t *hdr)=0
uint16_t AddShortArrayOption(uint32_t option, uint16_t opt_len, const std::string &input, bool array)
uint16_t AddStringOption(uint32_t option, uint16_t opt_len, const std::string &input)
virtual uint16_t GetFixedLen() const =0
bool is_dns_enabled() const
void set_flag(uint8_t flag)
autogen::IpamType ipam_type_
uint16_t AddDhcpOptions(uint16_t opt_len, std::vector< autogen::DhcpOptionType > &options, DhcpOptionLevel level)
bool is_flag_set(uint8_t flag) const