1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
6 #include "networkd-link.h"
8 typedef struct Neighbor Neighbor
;
9 typedef struct RoutingPolicyRule RoutingPolicyRule
;
11 typedef struct Request Request
;
13 typedef int (*request_after_configure_handler_t
)(Request
*, void*);
14 typedef void (*request_on_free_handler_t
)(Request
*);
16 typedef enum RequestType
{
17 REQUEST_TYPE_NEIGHBOR
,
18 REQUEST_TYPE_ROUTING_POLICY_RULE
,
20 _REQUEST_TYPE_INVALID
= -EINVAL
,
23 typedef struct Request
{
29 RoutingPolicyRule
*rule
;
33 unsigned *message_counter
;
34 link_netlink_message_handler_t netlink_handler
;
35 request_after_configure_handler_t after_configure
;
36 request_on_free_handler_t on_free
;
39 Request
*request_free(Request
*req
);
40 void request_drop(Request
*req
);
42 int link_queue_request(
47 unsigned *message_counter
,
48 link_netlink_message_handler_t netlink_handler
,
51 int manager_process_requests(sd_event_source
*s
, void *userdata
);