|
llmx-rtaco 0.0.1
RTNL-only netlink control-plane library for Linux (C++23).
|
Task that performs a full route table dump from the kernel. More...
#include <nl_route_dump_task.hxx>
Public Member Functions | |
| RouteDumpTask (SocketGuard &socket_guard, std::pmr::memory_resource *pmr, uint16_t ifindex, uint32_t sequence) noexcept | |
| Construct a RouteDumpTask. | |
| void | prepare_request () |
| Prepare the netlink request to dump routes. | |
| auto | process_message (const nlmsghdr &header) -> std::optional< std::expected< RouteEventList, std::error_code > > |
| Process a received netlink message for route dump responses. | |
| Public Member Functions inherited from llmx::rtaco::RouteTask< RouteDumpTask, RouteEventList > | |
| auto | request_payload () const -> std::span< const uint8_t > |
| Get the serialized request payload for the route request. | |
| Public Member Functions inherited from llmx::rtaco::RequestTask< RouteDumpTask, RouteEventList > | |
| RequestTask (SocketGuard &socket_guard, uint16_t ifindex, uint32_t sequence) noexcept | |
| Construct a RequestTask. | |
| virtual | ~RequestTask ()=default |
| Virtual destructor. | |
| auto | async_run () -> boost::asio::awaitable< std::expected< RouteEventList, std::error_code > > |
| Run the request asynchronously and return the result. | |
Private Member Functions | |
| auto | handle_done () -> std::expected< RouteEventList, std::error_code > |
| auto | handle_error (const nlmsghdr &header) -> std::expected< RouteEventList, std::error_code > |
| auto | dispatch_route (const nlmsghdr &header) -> std::optional< std::expected< RouteEventList, std::error_code > > |
Private Attributes | |
| RouteEventList | learned_ |
Additional Inherited Members | |
| Protected Member Functions inherited from llmx::rtaco::RouteTask< RouteDumpTask, RouteEventList > | |
| void | build_request (uint16_t msg_flags, uint8_t address_family, uint8_t route_table, uint8_t scope, uint8_t protocol) |
| Protected Member Functions inherited from llmx::rtaco::RequestTask< RouteDumpTask, RouteEventList > | |
| auto | socket () noexcept -> Socket & |
| auto | sequence () const noexcept -> uint32_t |
| auto | ifindex () const noexcept -> uint16_t |
| Protected Attributes inherited from llmx::rtaco::RouteTask< RouteDumpTask, RouteEventList > | |
| RouteRequest | request_ |
Task that performs a full route table dump from the kernel.
Sends an RTM_GETROUTE dump request and collects RouteEvent messages emitted by the kernel until completion, returning the collected list.
|
noexcept |
Construct a RouteDumpTask.
| socket_guard | Socket guard used for netlink I/O. |
| pmr | Memory resource for event list allocations. |
| ifindex | Target interface index (0 = all). |
| sequence | Netlink message sequence number. |
|
private |
|
private |
|
private |
| void llmx::rtaco::RouteDumpTask::prepare_request | ( | ) |
Prepare the netlink request to dump routes.
| auto llmx::rtaco::RouteDumpTask::process_message | ( | const nlmsghdr & | header | ) | -> std::optional< std::expected< RouteEventList, std::error_code > > |
Process a received netlink message for route dump responses.
| header | Netlink message header. |
|
private |