MessengerRef
Messenger::create(const entity_name_t& name,
const std::string& lname,
- const uint64_t nonce)
+ uint64_t nonce,
+ bool is_fixed_cpu)
{
- return seastar::make_shared<SocketMessenger>(name, lname, nonce);
+ return seastar::make_shared<SocketMessenger>(
+ name, lname, nonce, is_fixed_cpu);
}
} // namespace crimson::net
static MessengerRef
create(const entity_name_t& name,
const std::string& lname,
- const uint64_t nonce);
+ uint64_t nonce,
+ bool is_fixed_cpu);
#ifdef UNIT_TESTS_BUILT
virtual void set_interceptor(Interceptor *) = 0;
SocketMessenger::SocketMessenger(const entity_name_t& myname,
const std::string& logic_name,
- uint32_t nonce)
+ uint32_t nonce,
+ bool is_fixed_cpu)
: sid{seastar::this_shard_id()},
logic_name{logic_name},
nonce{nonce},
+ is_fixed_cpu{is_fixed_cpu},
my_name{myname}
{}
set_myaddrs(addrs);
return seastar::futurize_invoke([this] {
if (!listener) {
- return ShardedServerSocket::create(true
+ return ShardedServerSocket::create(is_fixed_cpu
).then([this] (auto _listener) {
listener = _listener;
});
public:
SocketMessenger(const entity_name_t& myname,
const std::string& logic_name,
- uint32_t nonce);
+ uint32_t nonce,
+ bool is_fixed_cpu);
~SocketMessenger() override;
// Distinguish messengers with meaningful names for debugging
const std::string logic_name;
const uint32_t nonce;
+ const bool is_fixed_cpu;
entity_name_t my_name;
entity_addrvec_t my_addrs;
make_pair(std::ref(hb_back_msgr), "hb_back"s)}) {
msgr = crimson::net::Messenger::create(entity_name_t::OSD(whoami),
name,
- nonce);
+ nonce,
+ true);
}
auto store = crimson::os::FuturizedStore::create(
local_conf().get_val<std::string>("osd_objectstore"),
auto auth_handler = std::make_unique<DummyAuthHandler>();
auto msgr = crimson::net::Messenger::create(entity_name_t::CLIENT(),
"temp_mon_client",
- get_nonce());
+ get_nonce(),
+ true);
crimson::mon::Client monc{*msgr, *auth_handler};
msgr->set_auth_client(&monc);
msgr->start({&monc}).get();
seastar::future<> init(const entity_addr_t& addr) {
return seastar::smp::submit_to(msgr_sid, [addr, this] {
// server msgr is always with nonce 0
- msgr = crimson::net::Messenger::create(entity_name_t::OSD(msgr_sid), lname, 0);
+ msgr = crimson::net::Messenger::create(
+ entity_name_t::OSD(msgr_sid),
+ lname, 0, true);
msgr->set_default_policy(crimson::net::SocketPolicy::stateless_server(0));
msgr->set_auth_client(&dummy_auth);
msgr->set_auth_server(&dummy_auth);
seastar::future<> init() {
return container().invoke_on_all([] (auto& client) {
if (client.is_active()) {
- client.msgr = crimson::net::Messenger::create(entity_name_t::OSD(client.sid), client.lname, client.sid);
+ client.msgr = crimson::net::Messenger::create(
+ entity_name_t::OSD(client.sid),
+ client.lname, client.sid, true);
client.msgr->set_default_policy(crimson::net::SocketPolicy::lossy_client(0));
client.msgr->set_auth_client(&client.dummy_auth);
client.msgr->set_auth_server(&client.dummy_auth);
if (role == echo_role::as_server) {
return seastar::do_with(
seastar_pingpong::Server{crimson::net::Messenger::create(
- entity_name_t::OSD(0), "server", addr.get_nonce())},
+ entity_name_t::OSD(0), "server", addr.get_nonce(), true)},
[addr, count](auto& server) mutable {
std::cout << "server listening at " << addr << std::endl;
// bind the server
} else {
return seastar::do_with(
seastar_pingpong::Client{crimson::net::Messenger::create(
- entity_name_t::OSD(1), "client", addr.get_nonce())},
+ entity_name_t::OSD(1), "client", addr.get_nonce(), true)},
[addr, count](auto& client) {
std::cout << "client sending to " << addr << std::endl;
client.msgr->set_default_policy(crimson::net::SocketPolicy::lossy_client(0));
const std::string& lname,
const uint64_t nonce,
const entity_addr_t& addr) {
- msgr = crimson::net::Messenger::create(name, lname, nonce);
+ msgr = crimson::net::Messenger::create(
+ name, lname, nonce, true);
msgr->set_default_policy(crimson::net::SocketPolicy::stateless_server(0));
msgr->set_auth_client(&dummy_auth);
msgr->set_auth_server(&dummy_auth);
seastar::future<> init(const entity_name_t& name,
const std::string& lname,
const uint64_t nonce) {
- msgr = crimson::net::Messenger::create(name, lname, nonce);
+ msgr = crimson::net::Messenger::create(
+ name, lname, nonce, true);
msgr->set_default_policy(crimson::net::SocketPolicy::lossy_client(0));
msgr->set_auth_client(&dummy_auth);
msgr->set_auth_server(&dummy_auth);
const std::string& lname,
const uint64_t nonce,
const entity_addr_t& addr) {
- msgr = crimson::net::Messenger::create(name, lname, nonce);
+ msgr = crimson::net::Messenger::create(
+ name, lname, nonce, true);
msgr->set_default_policy(crimson::net::SocketPolicy::stateless_server(0));
msgr->set_auth_client(&dummy_auth);
msgr->set_auth_server(&dummy_auth);
seastar::future<> init(const entity_name_t& name,
const std::string& lname,
const uint64_t nonce) {
- msgr = crimson::net::Messenger::create(name, lname, nonce);
+ msgr = crimson::net::Messenger::create(
+ name, lname, nonce, true);
msgr->set_default_policy(crimson::net::SocketPolicy::lossy_client(0));
msgr->set_auth_client(&dummy_auth);
msgr->set_auth_server(&dummy_auth);
const std::string& lname,
const uint64_t nonce,
const entity_addr_t& addr) {
- msgr = crimson::net::Messenger::create(name, lname, nonce);
+ msgr = crimson::net::Messenger::create(
+ name, lname, nonce, true);
msgr->set_default_policy(crimson::net::SocketPolicy::stateless_server(0));
msgr->set_auth_client(&dummy_auth);
msgr->set_auth_server(&dummy_auth);
seastar::future<> init(const entity_name_t& name,
const std::string& lname,
const uint64_t nonce) {
- msgr = crimson::net::Messenger::create(name, lname, nonce);
+ msgr = crimson::net::Messenger::create(
+ name, lname, nonce, true);
msgr->set_default_policy(crimson::net::SocketPolicy::lossy_client(0));
msgr->set_auth_client(&dummy_auth);
msgr->set_auth_server(&dummy_auth);
entity_addr_t test_peer_addr,
const TestInterceptor& interceptor) {
auto suite = std::make_unique<FailoverSuite>(
- Messenger::create(entity_name_t::OSD(TEST_OSD), "Test", TEST_NONCE),
+ Messenger::create(
+ entity_name_t::OSD(TEST_OSD),
+ "Test",
+ TEST_NONCE,
+ true),
test_peer_addr, interceptor);
return suite->init(test_addr, test_policy
).then([suite = std::move(suite)] () mutable {
entity_addr_t cmd_peer_addr,
entity_addr_t test_peer_addr) {
auto test = seastar::make_lw_shared<FailoverTest>(
- Messenger::create(entity_name_t::OSD(CMD_CLI_OSD), "CmdCli", CMD_CLI_NONCE),
+ Messenger::create(
+ entity_name_t::OSD(CMD_CLI_OSD),
+ "CmdCli",
+ CMD_CLI_NONCE,
+ true),
test_addr, test_peer_addr);
return test->init(cmd_peer_addr).then([test] {
logger().info("CmdCli ready");
Messenger::create(
entity_name_t::OSD(TEST_PEER_OSD),
"TestPeer",
- TEST_PEER_NONCE),
+ TEST_PEER_NONCE,
+ true),
op_callback
);
return suite->init(test_peer_addr, policy
static seastar::future<std::unique_ptr<FailoverTestPeer>>
create(entity_addr_t cmd_peer_addr, entity_addr_t test_peer_addr) {
auto test_peer = std::make_unique<FailoverTestPeer>(
- Messenger::create(entity_name_t::OSD(CMD_SRV_OSD), "CmdSrv", CMD_SRV_NONCE),
+ Messenger::create(
+ entity_name_t::OSD(CMD_SRV_OSD),
+ "CmdSrv",
+ CMD_SRV_NONCE,
+ true),
test_peer_addr);
return test_peer->init(cmd_peer_addr
).then([test_peer = std::move(test_peer)] () mutable {
const uint64_t nonce,
const entity_addr_t& addr) {
crimson::net::MessengerRef msgr =
- crimson::net::Messenger::create(name, lname, nonce);
+ crimson::net::Messenger::create(
+ name, lname, nonce, true);
msgr->set_default_policy(server_policy);
msgr->set_auth_client(&dummy_auth);
msgr->set_auth_server(&dummy_auth);
const std::string& lname,
const uint64_t nonce) {
crimson::net::MessengerRef msgr =
- crimson::net::Messenger::create(name, lname, nonce);
+ crimson::net::Messenger::create(
+ name, lname, nonce, true);
msgr->set_default_policy(client_policy);
msgr->set_auth_client(&dummy_auth);
msgr->set_auth_server(&dummy_auth);
}).then([] {
return crimson::common::sharded_perf_coll().start();
}).then([]() mutable {
- auto msgr = crimson::net::Messenger::create(entity_name_t::OSD(0), "monc", 0);
+ auto msgr = crimson::net::Messenger::create(entity_name_t::OSD(0), "monc", 0, true);
return seastar::do_with(MonClient{*msgr, dummy_handler},
[msgr](auto& monc) mutable {
return msgr->start({&monc}).then([&monc] {