1 /* 2 * netlink/idiag/req.h Inetdiag Netlink Request 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation version 2.1 7 * of the License. 8 * 9 * Copyright (c) 2013 Sassano Systems LLC <joe@sassanosystems.com> 10 */ 11 12 #ifndef NETLINK_IDIAGNL_REQ_H_ 13 #define NETLINK_IDIAGNL_REQ_H_ 14 15 #include <netlink/netlink.h> 16 17 #ifdef __cplusplus 18 extern "C" { 19 #endif /* __cplusplus */ 20 21 struct idiagnl_req; 22 extern struct nl_object_ops idiagnl_req_obj_ops; 23 24 extern struct idiagnl_req * idiagnl_req_alloc(void); 25 extern void idiagnl_req_get(struct idiagnl_req *); 26 extern void idiagnl_req_put(struct idiagnl_req *); 27 extern uint8_t idiagnl_req_get_family(const struct idiagnl_req *); 28 extern void idiagnl_req_set_family(struct idiagnl_req *, 29 uint8_t); 30 extern uint8_t idiagnl_req_get_ext(const struct idiagnl_req *); 31 extern void idiagnl_req_set_ext(struct idiagnl_req *, uint8_t); 32 extern uint32_t idiagnl_req_get_ifindex(const struct idiagnl_req *); 33 extern void idiagnl_req_set_ifindex(struct idiagnl_req *, 34 uint32_t); 35 extern uint32_t idiagnl_req_get_states(const struct idiagnl_req *); 36 extern void idiagnl_req_set_states(struct idiagnl_req *, 37 uint32_t); 38 extern uint32_t idiagnl_req_get_dbs(const struct idiagnl_req *); 39 extern void idiagnl_req_set_dbs(struct idiagnl_req *, uint32_t); 40 extern struct nl_addr * idiagnl_req_get_src(const struct idiagnl_req *); 41 extern int idiagnl_req_set_src(struct idiagnl_req *, 42 struct nl_addr *); 43 extern struct nl_addr * idiagnl_req_get_dst(const struct idiagnl_req *); 44 extern int idiagnl_req_set_dst(struct idiagnl_req *, 45 struct nl_addr *); 46 #ifdef __cplusplus 47 } 48 #endif /* __cplusplus */ 49 50 #endif /* NETLINK_IDIAGNL_REQ_H_ */ 51