18#ifndef __ROGUE_PROTOCOLS_ROCEV2_SERVER_H__
19#define __ROGUE_PROTOCOLS_ROCEV2_SERVER_H__
22#include <infiniband/verbs.h>
81 std::atomic<bool> threadEn_;
88 std::shared_ptr<rogue::Logging> log_;
91 std::atomic<uint64_t> frameCount_;
92 std::atomic<uint64_t> byteCount_;
94 void postRecvWr(uint32_t slot);
95 void runThread(std::weak_ptr<int> lockPtr);
100 void cleanupResources();
108 void retBuffer(uint8_t* data, uint32_t meta, uint32_t rawSize)
override;
111 static std::shared_ptr<rogue::protocols::rocev2::Server>
create(
112 const std::string& deviceName,
118 Server(
const std::string& deviceName,
122 uint32_t rxQueueDepth);
134 uint32_t minRnrTimer = 1);
136 uint32_t
getQpn()
const {
return hostQpn_; }
137 std::string
getGid()
const;
150typedef std::shared_ptr<rogue::protocols::rocev2::Server>
ServerPtr;
static std::shared_ptr< rogue::interfaces::stream::Master > create()
Creates a stream master.
Stream slave endpoint and default frame pool.
uint32_t maxPayload() const
uint64_t getFrameCount() const
void retBuffer(uint8_t *data, uint32_t meta, uint32_t rawSize) override
void setFpgaGid(const std::string &gidBytes)
uint64_t getMrAddr() const
static void setup_python()
uint32_t getMrRkey() const
uint32_t getRqPsn() const
uint32_t getSqPsn() const
std::string getGid() const
void completeConnection(uint32_t fpgaQpn, uint32_t fpgaRqPsn, uint32_t pmtu=5, uint32_t minRnrTimer=1)
void acceptFrame(rogue::interfaces::stream::FramePtr frame) override
uint64_t getByteCount() const
std::shared_ptr< rogue::interfaces::stream::Frame > FramePtr
Shared pointer alias for Frame.
std::shared_ptr< rogue::protocols::rocev2::Server > ServerPtr
static const uint32_t DefaultMaxPayload
static const uint32_t DefaultRxQueueDepth