1 /* SPDX-License-Identifier: LGPL-2.1-only */ 2 /* 3 * Copyright (c) 2013 Sassano Systems LLC <[email protected]> 4 */ 5 6 #ifndef NETLINK_IDIAGNL_REQ_H_ 7 #define NETLINK_IDIAGNL_REQ_H_ 8 9 #include <netlink/netlink.h> 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif /* __cplusplus */ 14 15 struct idiagnl_req; 16 extern struct nl_object_ops idiagnl_req_obj_ops; 17 18 extern struct idiagnl_req * idiagnl_req_alloc(void); 19 extern void idiagnl_req_get(struct idiagnl_req *); 20 extern void idiagnl_req_put(struct idiagnl_req *); 21 extern uint8_t idiagnl_req_get_family(const struct idiagnl_req *); 22 extern void idiagnl_req_set_family(struct idiagnl_req *, 23 uint8_t); 24 extern uint8_t idiagnl_req_get_ext(const struct idiagnl_req *); 25 extern void idiagnl_req_set_ext(struct idiagnl_req *, uint8_t); 26 extern uint32_t idiagnl_req_get_ifindex(const struct idiagnl_req *); 27 extern void idiagnl_req_set_ifindex(struct idiagnl_req *, 28 uint32_t); 29 extern uint32_t idiagnl_req_get_states(const struct idiagnl_req *); 30 extern void idiagnl_req_set_states(struct idiagnl_req *, 31 uint32_t); 32 extern uint32_t idiagnl_req_get_dbs(const struct idiagnl_req *); 33 extern void idiagnl_req_set_dbs(struct idiagnl_req *, uint32_t); 34 extern struct nl_addr * idiagnl_req_get_src(const struct idiagnl_req *); 35 extern int idiagnl_req_set_src(struct idiagnl_req *, 36 struct nl_addr *); 37 extern struct nl_addr * idiagnl_req_get_dst(const struct idiagnl_req *); 38 extern int idiagnl_req_set_dst(struct idiagnl_req *, 39 struct nl_addr *); 40 41 extern int idiagnl_req_parse(struct nlmsghdr *nlh, 42 struct idiagnl_req **result); 43 44 #ifdef __cplusplus 45 } 46 #endif /* __cplusplus */ 47 48 #endif /* NETLINK_IDIAGNL_REQ_H_ */ 49