virtual void print(ostream& out) const = 0;
+ virtual SocketPolicy get_policy(entity_type_t peer_type) const = 0;
+
+ virtual SocketPolicy get_default_policy() const = 0;
+
virtual void set_default_policy(const SocketPolicy& p) = 0;
virtual void set_policy(entity_type_t peer_type, const SocketPolicy& p) = 0;
conn.peer_addr = _peer_addr;
conn.target_addr = _peer_addr;
conn.peer_type = _peer_type;
- // TODO: lossless policy
- conn.policy = SocketPolicy::lossy_client(0);
+ conn.policy = messenger.get_policy(_peer_type);
messenger.register_conn(
seastar::static_pointer_cast<SocketConnection>(conn.shared_from_this()));
execute_connecting();
ceph_assert(conn.get_peer_type() == -1);
conn.peer_type = _peer_type;
- // TODO: lossless policy
- conn.policy = SocketPolicy::stateless_server(0);
+ conn.policy = messenger.get_policy(_peer_type);
logger().debug("{} accept of host type {}, lossy={} server={} standby={} resetcheck={}",
conn, (int)_peer_type,
conn.policy.lossy, conn.policy.server,
return set_myaddrs(entity_addrvec_t{addr});
}
+SocketPolicy SocketMessenger::get_policy(entity_type_t peer_type) const
+{
+ return policy_set.get(peer_type);
+}
+
+SocketPolicy SocketMessenger::get_default_policy() const
+{
+ return policy_set.get_default();
+}
+
void SocketMessenger::set_default_policy(const SocketPolicy& p)
{
policy_set.set_default(p);
<< ") " << get_myaddr();
}
+ SocketPolicy get_policy(entity_type_t peer_type) const override;
+
+ SocketPolicy get_default_policy() const override;
+
void set_default_policy(const SocketPolicy& p) override;
void set_policy(entity_type_t peer_type, const SocketPolicy& p) override;
return fut.then([&server, addr](ceph::net::Messenger *messenger) {
return server.container().invoke_on_all([messenger](auto& server) {
server.msgr = messenger->get_local_shard();
+ server.msgr->set_default_policy(ceph::net::SocketPolicy::stateless_server(0));
server.msgr->set_auth_client(&server.dummy_auth);
server.msgr->set_auth_server(&server.dummy_auth);
}).then([messenger, addr] {
return ceph::net::Messenger::create(entity_name_t::OSD(client.sid), client.lname, client.sid, client.sid)
.then([&client] (ceph::net::Messenger *messenger) {
client.msgr = messenger;
+ client.msgr->set_default_policy(ceph::net::SocketPolicy::lossy_client(0));
client.msgr->set_auth_client(&client.dummy_auth);
client.msgr->set_auth_server(&client.dummy_auth);
return client.msgr->start(&client);
[addr, count](auto& server) mutable {
std::cout << "server listening at " << addr << std::endl;
// bind the server
+ server.msgr.set_default_policy(ceph::net::SocketPolicy::stateless_server(0));
server.msgr.set_policy_throttler(entity_name_t::TYPE_OSD,
&server.byte_throttler);
server.msgr.set_auth_client(&server.dummy_auth);
return seastar::do_with(seastar_pingpong::Client{*msgr},
[addr, count](auto& client) {
std::cout << "client sending to " << addr << std::endl;
+ client.msgr.set_default_policy(ceph::net::SocketPolicy::lossy_client(0));
client.msgr.set_policy_throttler(entity_name_t::TYPE_OSD,
&client.byte_throttler);
client.msgr.set_auth_client(&client.dummy_auth);
return fut.then([this, addr](ceph::net::Messenger *messenger) {
return container().invoke_on_all([messenger](auto& server) {
server.msgr = messenger->get_local_shard();
+ server.msgr->set_default_policy(ceph::net::SocketPolicy::stateless_server(0));
server.msgr->set_auth_client(&server.dummy_auth);
server.msgr->set_auth_server(&server.dummy_auth);
}).then([messenger, addr] {
.then([this](ceph::net::Messenger *messenger) {
return container().invoke_on_all([messenger](auto& client) {
client.msgr = messenger->get_local_shard();
+ client.msgr->set_default_policy(ceph::net::SocketPolicy::lossy_client(0));
client.msgr->set_auth_client(&client.dummy_auth);
client.msgr->set_auth_server(&client.dummy_auth);
}).then([this, messenger] {
.then([this, addr](ceph::net::Messenger *messenger) {
return container().invoke_on_all([messenger](auto& server) {
server.msgr = messenger->get_local_shard();
+ server.msgr->set_default_policy(ceph::net::SocketPolicy::stateless_server(0));
server.msgr->set_auth_client(&server.dummy_auth);
server.msgr->set_auth_server(&server.dummy_auth);
}).then([messenger, addr] {
.then([this](ceph::net::Messenger *messenger) {
return container().invoke_on_all([messenger](auto& client) {
client.msgr = messenger->get_local_shard();
+ client.msgr->set_default_policy(ceph::net::SocketPolicy::lossy_client(0));
client.msgr->set_auth_client(&client.dummy_auth);
client.msgr->set_auth_server(&client.dummy_auth);
}).then([this, messenger] {