]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/seastar/include/seastar/net/dpdk.hh
import quincy beta 17.1.0
[ceph.git] / ceph / src / seastar / include / seastar / net / dpdk.hh
index 18929374f4e911cdfd4bba182e55a78baeec1608..bd07bb0dd8794ffba36328ae58ed894bba12d94e 100644 (file)
 
 #pragma once
 
-#ifdef SEASTAR_HAVE_DPDK
-
 #include <memory>
 #include <seastar/net/config.hh>
 #include <seastar/net/net.hh>
 #include <seastar/core/sstring.hh>
+#include <seastar/util/program-options.hh>
 
 namespace seastar {
 
+namespace net {
+
+/// DPDK configuration.
+struct dpdk_options : public program_options::option_group {
+    /// DPDK Port Index.
+    ///
+    /// Default: 0.
+    program_options::value<unsigned> dpdk_port_index;
+    /// \brief Enable HW Flow Control (on / off).
+    ///
+    /// Default: \p on.
+    program_options::value<std::string> hw_fc;
+
+    /// \cond internal
+    dpdk_options(program_options::option_group* parent_group);
+    /// \endcond
+};
+
+}
+
+/// \cond internal
+
+#ifdef SEASTAR_HAVE_DPDK
+
 std::unique_ptr<net::device> create_dpdk_net_device(
                                     uint16_t port_idx = 0,
                                     uint16_t num_queues = 1,
@@ -39,9 +62,6 @@ std::unique_ptr<net::device> create_dpdk_net_device(
 std::unique_ptr<net::device> create_dpdk_net_device(
                                     const net::hw_config& hw_cfg);
 
-
-boost::program_options::options_description get_dpdk_net_options_description();
-
 namespace dpdk {
 /**
  * @return Number of bytes needed for mempool objects of each QP.
@@ -49,6 +69,8 @@ namespace dpdk {
 uint32_t qp_mempool_obj_size(bool hugetlbfs_membackend);
 }
 
-}
+/// \endcond
 
 #endif // SEASTAR_HAVE_DPDK
+
+}