1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
6 #include "networkd-link.h"
8 typedef struct Address Address
;
9 typedef struct Neighbor Neighbor
;
10 typedef struct NextHop NextHop
;
11 typedef struct Route Route
;
12 typedef struct RoutingPolicyRule RoutingPolicyRule
;
14 typedef struct Request Request
;
16 typedef int (*request_after_configure_handler_t
)(Request
*, void*);
17 typedef void (*request_on_free_handler_t
)(Request
*);
19 typedef enum RequestType
{
21 REQUEST_TYPE_NEIGHBOR
,
24 REQUEST_TYPE_ROUTING_POLICY_RULE
,
26 _REQUEST_TYPE_INVALID
= -EINVAL
,
29 typedef struct Request
{
38 RoutingPolicyRule
*rule
;
42 unsigned *message_counter
;
43 link_netlink_message_handler_t netlink_handler
;
44 request_after_configure_handler_t after_configure
;
45 request_on_free_handler_t on_free
;
48 Request
*request_free(Request
*req
);
49 void request_drop(Request
*req
);
51 int link_queue_request(
56 unsigned *message_counter
,
57 link_netlink_message_handler_t netlink_handler
,
60 int manager_process_requests(sd_event_source
*s
, void *userdata
);