ConstSubnet6Ptr orig_subnet = ctx.subnet_;
// We need to allocate addresses for all IA_NA options in the client's
- // question (i.e. SOLICIT or REQUEST) message.
- // @todo add support for IA_TA
+ // question (i.e. SOLICIT or REQUEST) message. IA_TA options are ignored.
// For the lease allocation it is critical that the client has sent
// DUID. There is no need to check for the presence of the DUID here
// Now that we have all information about the client, let's iterate over all
// received options and handle IA_NA options one by one and store our
// responses in answer message (ADVERTISE or REPLY).
- //
- // @todo: IA_TA once we implement support for temporary addresses.
for (auto const& opt : question->options_) {
switch (opt.second->getType()) {
case D6O_IA_NA: {
AllocEngine::ClientContext6& ctx) {
// We will try to extend lease lifetime for all IA options in the client's
- // Renew or Rebind message.
- /// @todo add support for IA_TA
+ // Renew or Rebind message. IA_TA options are ignored.
// For the lease extension it is critical that the client has sent
// DUID. There is no need to check for the presence of the DUID here
AllocEngine::ClientContext6& ctx) {
// We need to release addresses for all IA options in the client's
- // RELEASE message.
+ // RELEASE message. IA_TA options are ignored.
- /// @todo Add support for IA_TA
/// @todo Consider supporting more than one address in a single IA.
/// It is allowed by RFC 8415, but it is not widely implemented. The only
/// software that supports that is Dibbler, but its author seriously doubts
}
break;
}
- // @todo: add support for IA_TA
+ case D6O_IA_TA:
default:
// remaining options are stateless and thus ignored in this context
;
/// @brief Assigns leases.
///
/// It supports non-temporary addresses (IA_NA) and prefixes (IA_PD). It
- /// does NOT support temporary addresses (IA_TA).
+ /// does NOT (and shall NEVER) support temporary addresses (IA_TA).
///
/// @param question client's message (with requested IA options)
/// @param answer server's message (IA options will be added here).
///
/// @param source Message from which IA options will be copied.
/// @param dest Message to which IA options will be copied.
- ///
- /// @todo Add support for IA_TA.
void copyIAs(const Pkt6Ptr& source, const Pkt6Ptr& dest);
/// @brief Creates IA options from existing configuration.
string t = params->get("type")->stringValue();
if (t == "IA_NA" || t == "0") {
x.lease_type = Lease::TYPE_NA;
- } else if (t == "IA_TA" || t == "1") {
- x.lease_type = Lease::TYPE_TA;
} else if (t == "IA_PD" || t == "2") {
x.lease_type = Lease::TYPE_PD;
} else if (t == "V4" || t == "3") {
x.lease_type = Lease::TYPE_V4;
} else {
- isc_throw(BadValue, "Invalid lease type specified: "
- << t << ", only supported values are: IA_NA, IA_TA,"
- << " IA_PD and V4");
+ isc_throw(BadValue, "Invalid lease type specified: " << t
+ << ", only supported values are: IA_NA, IA_PD and V4");
}
}
string txt = getString(lease_info, "type");
if (txt == "IA_NA") {
type = Lease::TYPE_NA;
- } else if (txt == "IA_TA") {
- type = Lease::TYPE_TA;
} else if (txt == "IA_PD") {
type = Lease::TYPE_PD;
bind_[1].is_unsigned = MLM_TRUE;
// type tinyint
- // See lease6_types for values (0 = IA_NA, 1 = IA_TA, 2 = IA_PD)
+ // See lease6_types for values (0 = IA_NA, 2 = IA_PD)
type_ = resv.getType() == IPv6Resrv::TYPE_NA ? 0 : 2;
bind_[2].buffer_type = MYSQL_TYPE_TINY;
bind_[2].buffer = reinterpret_cast<char*>(&type_);
txt = SimpleParser::getString(arguments, "type");
if (txt == "IA_NA") {
type = Lease::TYPE_NA;
- } else if (txt == "IA_TA") {
- type = Lease::TYPE_TA;
} else if (txt == "IA_PD") {
type = Lease::TYPE_PD;
(Lease::TYPE_NA, subnet));
subnet->setAllocationState(Lease::TYPE_NA,
SubnetIterativeAllocationState::create(subnet));
- // IA_TA
- subnet->setAllocator(Lease::TYPE_TA,
- boost::make_shared<IterativeAllocator>
- (Lease::TYPE_TA, subnet));
- subnet->setAllocationState(Lease::TYPE_TA,
- SubnetIterativeAllocationState::create(subnet));
// IA_PD
subnet->setAllocator(Lease::TYPE_PD,
boost::make_shared<IterativeAllocator>