diff options
author | Alex Williams <alex.williams@ni.com> | 2019-03-18 11:11:13 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2019-04-10 16:50:43 -0700 |
commit | 88a405980fc19f5e9833c4880911b8b883435ad9 (patch) | |
tree | 5ecb53df1296833fc0ab6d191b27b212d656f547 /host/lib/include/uhdlib/transport | |
parent | 4842d45fec1e62f9687ccf5c000f29cd34425964 (diff) | |
download | uhd-88a405980fc19f5e9833c4880911b8b883435ad9.tar.gz uhd-88a405980fc19f5e9833c4880911b8b883435ad9.tar.bz2 uhd-88a405980fc19f5e9833c4880911b8b883435ad9.zip |
uhdlib: Add dpdk_zero_copy.hpp
dpdk_zero_copy.hpp was referenced in multiple places using relative
paths. Let's throw it in uhdlib for easy access.
Diffstat (limited to 'host/lib/include/uhdlib/transport')
-rw-r--r-- | host/lib/include/uhdlib/transport/dpdk_zero_copy.hpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/host/lib/include/uhdlib/transport/dpdk_zero_copy.hpp b/host/lib/include/uhdlib/transport/dpdk_zero_copy.hpp new file mode 100644 index 000000000..8dcce6eee --- /dev/null +++ b/host/lib/include/uhdlib/transport/dpdk_zero_copy.hpp @@ -0,0 +1,45 @@ +// +// Copyright 2018 Ettus Research, a National Instruments Company +// +// SPDX-License-Identifier: GPL-3.0-or-later +// + +#ifndef DPDK_ZERO_COPY_HPP +#define DPDK_ZERO_COPY_HPP + +#include <uhdlib/transport/dpdk_common.hpp> +#include <uhd/types/device_addr.hpp> +#include <uhd/transport/zero_copy.hpp> +#include <boost/shared_ptr.hpp> +#include <string> + + +namespace uhd { namespace transport { + +/*! + * A zero copy transport interface to the dpdk DMA library. + */ +class dpdk_zero_copy : public virtual zero_copy_if { +public: + typedef boost::shared_ptr<dpdk_zero_copy> sptr; + + static sptr make( + const struct uhd_dpdk_ctx &ctx, + const unsigned int dpdk_port_id, + const std::string &addr, + const std::string &remote_port, + const std::string &local_port, /* 0 = auto-assign */ + const zero_copy_xport_params &default_buff_args, + const device_addr_t &hints + ); + + virtual uint16_t get_local_port(void) const = 0; + + virtual std::string get_local_addr(void) const = 0; + + virtual uint32_t get_drop_count(void) const = 0; +}; + +}} // namespace uhd::transport + +#endif /* DPDK_ZERO_COPY_HPP */ |