]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2834] Adding relayed v6 options
authorPiotrek Zadroga <piotrek@isc.org>
Fri, 12 May 2023 11:46:43 +0000 (13:46 +0200)
committerPiotrek Zadroga <piotrek@isc.org>
Fri, 26 May 2023 13:20:31 +0000 (15:20 +0200)
src/bin/perfdhcp/command_options.cc
src/bin/perfdhcp/command_options.h
src/bin/perfdhcp/test_control.cc

index 945b88a28e30a2afe9a7f74e2a8da908ca7f22e9..b04975d90f4ac1d534e05cd68c6acd62bc0afa77 100644 (file)
@@ -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<integer>,<hexstring>");
+                                            "--o1r option, expected format: --o1r <integer>,<hexstring>");
             }
 
             // Now try to interpret the hexstring
index 9515e7e3089993028df7072841f052d6387287aa..15d9a6aaa99b2df6a5c8604d2a5e10045edda6e4 100644 (file)
@@ -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.
index d9837763657c31b182b164e9b81171e792e18e6d..94b13e4b2d397b1cfb44d603f59cf61bd115d4df 100644 (file)
@@ -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);
     }
 }