6#include <linux/netlink.h>
7#include <linux/rtnetlink.h>
26template<
typename Derived,
typename Result>
36 return {
reinterpret_cast<const uint8_t*
>(&
request_),
request_.header.nlmsg_len};
41 uint8_t family = AF_UNSPEC, uint16_t type = 0, uint32_t flags = 0,
42 uint32_t change = 0) {
43 request_.header.nlmsg_len = NLMSG_LENGTH(
sizeof(ifinfomsg));
44 request_.header.nlmsg_type = RTM_GETLINK;
45 request_.header.nlmsg_flags = msg_flags;
47 request_.
header.nlmsg_pid = 0;
49 request_.message.ifi_family = family;
52 request_.
message.ifi_flags = flags;
53 request_.message.ifi_change = change;
Base task type for link-related netlink operations.
Definition nl_link_task.hxx:27
void build_request(uint16_t msg_flags=NLM_F_REQUEST|NLM_F_DUMP, uint8_t family=AF_UNSPEC, uint16_t type=0, uint32_t flags=0, uint32_t change=0)
Definition nl_link_task.hxx:40
auto request_payload() const -> std::span< const uint8_t >
Get the serialized payload for the link request.
Definition nl_link_task.hxx:35
LinkRequest request_
Definition nl_link_task.hxx:29
Base template for single-request netlink tasks.
Definition nl_request_task.hxx:46
RequestTask(SocketGuard &socket_guard, uint16_t ifindex, uint32_t sequence) noexcept
Construct a RequestTask.
Definition nl_request_task.hxx:61
auto ifindex() const noexcept -> uint16_t
Definition nl_request_task.hxx:93
auto sequence() const noexcept -> uint32_t
Definition nl_request_task.hxx:89
Definition nl_common.hxx:21
Definition nl_common.hxx:20
Definition nl_link_task.hxx:14
ifinfomsg message
Definition nl_link_task.hxx:16
nlmsghdr header
Definition nl_link_task.hxx:15