Kea  2.1.7-git
option6_iaaddr.h
Go to the documentation of this file.
1 // Copyright (C) 2011-2022 Internet Systems Consortium, Inc. ("ISC")
2 //
3 // This Source Code Form is subject to the terms of the Mozilla Public
4 // License, v. 2.0. If a copy of the MPL was not distributed with this
5 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 
7 #ifndef OPTION6_IAADDR_H
8 #define OPTION6_IAADDR_H
9 
10 #include <asiolink/io_address.h>
11 #include <dhcp/option.h>
12 #include <boost/shared_ptr.hpp>
13 
14 namespace isc {
15 namespace dhcp {
16 
18 
20 typedef boost::shared_ptr<Option6IAAddr> Option6IAAddrPtr;
21 
22 class Option6IAAddr: public Option {
23 
24 public:
26  static const size_t OPTION6_IAADDR_LEN = 24;
27 
36  Option6IAAddr(uint16_t type, const isc::asiolink::IOAddress& addr,
37  uint32_t preferred, uint32_t valid);
38 
46  Option6IAAddr(uint32_t type, OptionBuffer::const_iterator begin,
47  OptionBuffer::const_iterator end);
48 
50  virtual OptionPtr clone() const;
51 
58  void pack(isc::util::OutputBuffer& buf, bool check = true) const;
59 
64  virtual void unpack(OptionBufferConstIter begin,
66 
72  virtual std::string
73  toText(int indent = 0) const;
74 
75 
79  void setAddress(const isc::asiolink::IOAddress& addr) { addr_ = addr; }
80 
85  void setPreferred(unsigned int pref) { preferred_=pref; }
86 
91  void setValid(unsigned int valid) { valid_=valid; }
92 
97  getAddress() const { return addr_; }
98 
102  unsigned int
103  getPreferred() const { return preferred_; }
104 
108  unsigned int
109  getValid() const { return valid_; }
110 
112  virtual uint16_t len() const;
113 
114 protected:
117 
119  unsigned int preferred_;
120 
122  unsigned int valid_;
123 };
124 
125 } // isc::dhcp namespace
126 } // isc namespace
127 
128 #endif // OPTION_IA_H
static const size_t OPTION6_IAADDR_LEN
length of the fixed part of the IAADDR option
Option6IAAddr(uint16_t type, const isc::asiolink::IOAddress &addr, uint32_t preferred, uint32_t valid)
Constructor, used for options constructed (during transmission).
void pack(isc::util::OutputBuffer &buf, bool check=true) const
Writes option in wire-format.
unsigned int valid_
contains valid-lifetime timer (in seconds)
isc::asiolink::IOAddress addr_
contains an IPv6 address
boost::shared_ptr< Option > OptionPtr
Definition: option.h:36
void setPreferred(unsigned int pref)
Sets preferred lifetime (in seconds)
void setValid(unsigned int valid)
Sets valid lifetime (in seconds).
unsigned int getValid() const
Returns valid lifetime of an address.
unsigned int getPreferred() const
Returns preferred lifetime of an address.
virtual OptionPtr clone() const
Copies this option and returns a pointer to the copy.
void check() const
A protected method used for option correctness.
Definition: option.cc:90
void setAddress(const isc::asiolink::IOAddress &addr)
sets address in this option.
The OutputBuffer class is a buffer abstraction for manipulating mutable data.
Definition: buffer.h:294
OptionBuffer::const_iterator OptionBufferConstIter
const_iterator for walking over OptionBuffer
Definition: option.h:30
Defines the logger used by the top-level component of kea-lfc.
virtual bool valid() const
returns if option is valid (e.g.
Definition: option.cc:190
virtual void unpack(OptionBufferConstIter begin, OptionBufferConstIter end)
Parses received buffer.
virtual std::string toText(int indent=0) const
Returns string representation of the option.
unsigned int preferred_
contains preferred-lifetime timer (in seconds)
virtual uint16_t len() const
returns data length (data length + DHCPv4/DHCPv6 option header)
boost::shared_ptr< Option6IAAddr > Option6IAAddrPtr
A pointer to the isc::dhcp::Option6IAAddr object.
isc::asiolink::IOAddress getAddress() const
Returns address contained within this option.