From: Piotrek Zadroga Date: Fri, 12 May 2023 11:46:43 +0000 (+0200) Subject: [#2834] Adding relayed v6 options X-Git-Tag: Kea-2.3.8~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5c5d5a4726b322c7065251ded3ca450c34e9d950;p=thirdparty%2Fkea.git [#2834] Adding relayed v6 options --- diff --git a/src/bin/perfdhcp/command_options.cc b/src/bin/perfdhcp/command_options.cc index 945b88a28e..b04975d90f 100644 --- a/src/bin/perfdhcp/command_options.cc +++ b/src/bin/perfdhcp/command_options.cc @@ -616,7 +616,7 @@ CommandOptions::initialize(int argc, char** argv, bool print_cmd_line) { size_t coma_loc = opt_text.find(','); check(coma_loc == std::string::npos, "--o1r option must provide option code, a coma and hexstring for" - " the option content, e.g. --o1r60,646f63736973 for sending option" + " the option content, e.g. --o1r 60,646f63736973 for sending option" " 60 (class-id) with the value 'docsis'"); int code = 0; @@ -626,7 +626,7 @@ CommandOptions::initialize(int argc, char** argv, bool print_cmd_line) { check(code <= 0, "Option code can't be negative"); } catch (const boost::bad_lexical_cast&) { isc_throw(InvalidParameter, "Invalid option code specified for " - "--o1r option, expected format: --o1r,"); + "--o1r option, expected format: --o1r ,"); } // Now try to interpret the hexstring diff --git a/src/bin/perfdhcp/command_options.h b/src/bin/perfdhcp/command_options.h index 9515e7e308..15d9a6aaa9 100644 --- a/src/bin/perfdhcp/command_options.h +++ b/src/bin/perfdhcp/command_options.h @@ -380,6 +380,15 @@ public: /// @return container with options. const isc::dhcp::OptionCollection& getExtraOpts() const { return extra_opts_; } + /// @brief Returns relay options to be inserted at given level of encapsulation. + /// + /// @param encapsulation_level level of encapsulation, by default 1 + /// + /// @return container with options. + const isc::dhcp::OptionCollection& getRelayOpts(uint8_t encapsulation_level = 1) const { + return relay_opts_.find(encapsulation_level)->second; + } + /// \brief Check if single-threaded mode is enabled. /// /// \return true if single-threaded mode is enabled. diff --git a/src/bin/perfdhcp/test_control.cc b/src/bin/perfdhcp/test_control.cc index d983776365..94b13e4b2d 100644 --- a/src/bin/perfdhcp/test_control.cc +++ b/src/bin/perfdhcp/test_control.cc @@ -1880,6 +1880,7 @@ TestControl::setDefaults6(const Pkt6Ptr& pkt) { relay_info.linkaddr_ = IOAddress(socket_.addr_); } relay_info.peeraddr_ = IOAddress(socket_.addr_); + relay_info.options_.insert(options_.getRelayOpts().begin(), options_.getRelayOpts().end()); pkt->addRelayInfo(relay_info); } }