Skip to content

Commit

Permalink
add netlink socket interface
Browse files Browse the repository at this point in the history
  • Loading branch information
antonmyagkov committed Nov 3, 2024
1 parent 8001b7a commit f5b8b26
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 191 deletions.
28 changes: 14 additions & 14 deletions cloud/blockstore/libs/nbd/netlink_device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include "utils.h"

#include <cloud/storage/core/libs/diagnostics/logging.h>
#include <cloud/storage/core/libs/netlink/netlink.h>
#include <cloud/storage/core/libs/netlink/netlink_socket.h>

#include <linux/nbd-netlink.h>

Expand Down Expand Up @@ -149,9 +149,9 @@ TFuture<NProto::TError> TNetlinkDevice::Stop(bool deleteDevice)
TFuture<NProto::TError> TNetlinkDevice::Resize(ui64 deviceSizeInBytes)
{
try {
NCloud::NNetlink::TNetlinkSocket socket("nbd");
auto socket = NCloud::NNetlink::CreateNetlinkSocket("nbd");
NCloud::NNetlink::TNetlinkMessage message(
socket.GetFamily(),
socket->GetFamily(),
NBD_CMD_RECONFIGURE);

message.Put(NBD_ATTR_INDEX, DeviceIndex);
Expand All @@ -163,7 +163,7 @@ TFuture<NProto::TError> TNetlinkDevice::Resize(ui64 deviceSizeInBytes)
message.Put(NBD_SOCK_FD, static_cast<ui32>(Socket));
}

socket.Send(message);
socket->Send(message);

} catch (const TServiceError& e) {
return MakeFuture(MakeError(
Expand Down Expand Up @@ -215,30 +215,30 @@ void TNetlinkDevice::DisconnectSocket()
// or reconfigure (if Reconfigure == true) specified device
void TNetlinkDevice::Connect()
{
NCloud::NNetlink::TNetlinkSocket socket("nbd");
socket.SetCallback(
auto socket = NCloud::NNetlink::CreateNetlinkSocket("nbd");
socket->SetCallback(
NL_CB_VALID,
[device = shared_from_this()] (nl_msg* nlmsg) {
return device->StatusHandler(nlmsg);
});

NCloud::NNetlink::TNetlinkMessage message(
socket.GetFamily(),
socket->GetFamily(),
NBD_CMD_STATUS);
message.Put(NBD_ATTR_INDEX, DeviceIndex);
socket.Send(message);
socket->Send(message);
}

void TNetlinkDevice::Disconnect()
{
STORAGE_INFO("disconnect " << DeviceName);

NCloud::NNetlink::TNetlinkSocket socket("nbd");
auto socket = NCloud::NNetlink::CreateNetlinkSocket("nbd");
NCloud::NNetlink::TNetlinkMessage message(
socket.GetFamily(),
socket->GetFamily(),
NBD_CMD_DISCONNECT);
message.Put(NBD_ATTR_INDEX, DeviceIndex);
socket.Send(message);
socket->Send(message);
StopResult.SetValue(MakeError(S_OK));
}

Expand All @@ -256,8 +256,8 @@ void TNetlinkDevice::DoConnect(bool connected)
STORAGE_INFO("connect " << DeviceName);
}

NCloud::NNetlink::TNetlinkSocket socket("nbd");
NCloud::NNetlink::TNetlinkMessage message(socket.GetFamily(), command);
auto socket = NCloud::NNetlink::CreateNetlinkSocket("nbd");
NCloud::NNetlink::TNetlinkMessage message(socket->GetFamily(), command);

const auto& info = Handler->GetExportInfo();
message.Put(NBD_ATTR_INDEX, DeviceIndex);
Expand All @@ -283,7 +283,7 @@ void TNetlinkDevice::DoConnect(bool connected)
message.Put(NBD_SOCK_FD, static_cast<ui32>(Socket));
}

socket.Send(message);
socket->Send(message);
StartResult.SetValue(MakeError(S_OK));

} catch (const TServiceError& e) {
Expand Down
8 changes: 4 additions & 4 deletions cloud/storage/core/libs/diagnostics/cgroup_stats_fetcher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <cloud/storage/core/libs/diagnostics/logging.h>
#include <cloud/storage/core/libs/diagnostics/monitoring.h>
#include <cloud/storage/core/libs/common/error.h>
#include <cloud/storage/core/libs/netlink/netlink.h>
#include <cloud/storage/core/libs/netlink/netlink_socket.h>

#include <library/cpp/monlib/dynamic_counters/counters.h>

Expand Down Expand Up @@ -196,7 +196,7 @@ struct TKernelTaskDelayAcctStatsFetcher final: public IStatsFetcher
const ILoggingServicePtr Logging;
const IMonitoringServicePtr Monitoring;
TLog Log;
std::unique_ptr<NCloud::NNetlink::TNetlinkSocket> NetlinkSocket;
NCloud::NNetlink::INetlinkSocketPtr NetlinkSocket;

public:
TKernelTaskDelayAcctStatsFetcher(
Expand All @@ -216,8 +216,8 @@ struct TKernelTaskDelayAcctStatsFetcher final: public IStatsFetcher
void Start() override
{
Log = Logging->CreateLog(ComponentName);
NetlinkSocket = std::make_unique<NCloud::NNetlink::TNetlinkSocket>(
TASKSTATS_GENL_NAME);
NetlinkSocket =
NCloud::NNetlink::CreateNetlinkSocket(TASKSTATS_GENL_NAME);
}

void Stop() override
Expand Down
173 changes: 0 additions & 173 deletions cloud/storage/core/libs/netlink/netlink.h

This file was deleted.

5 changes: 5 additions & 0 deletions cloud/storage/core/libs/netlink/ya.make
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
LIBRARY()

SRCS(
netlink_socket.cpp
)

PEERDIR(
cloud/storage/core/libs/common
contrib/restricted/libnl/lib/nl-3
contrib/restricted/libnl/lib/nl-genl-3
)
Expand Down

0 comments on commit f5b8b26

Please sign in to comment.