12 #include <netlink-private/netlink.h>
13 #include <netlink/idiag/vegasinfo.h>
23 struct idiagnl_vegasinfo *idiagnl_vegasinfo_alloc(
void)
25 return (
struct idiagnl_vegasinfo *)
nl_object_alloc(&idiagnl_vegasinfo_obj_ops);
28 void idiagnl_vegasinfo_get(
struct idiagnl_vegasinfo *vinfo)
33 void idiagnl_vegasinfo_put(
struct idiagnl_vegasinfo *vinfo)
42 uint32_t idiagnl_vegasinfo_get_enabled(
const struct idiagnl_vegasinfo *vinfo)
44 return vinfo->tcpv_enabled;
47 void idiagnl_vegasinfo_set_enabled(
struct idiagnl_vegasinfo *vinfo, uint32_t
50 vinfo->tcpv_enabled = enabled;
53 uint32_t idiagnl_vegasinfo_get_rttcnt(
const struct idiagnl_vegasinfo *vinfo)
55 return vinfo->tcpv_rttcnt;
58 void idiagnl_vegasinfo_set_rttcnt(
struct idiagnl_vegasinfo *vinfo, uint32_t
61 vinfo->tcpv_rttcnt = rttcnt;
64 uint32_t idiagnl_vegasinfo_get_rtt(
const struct idiagnl_vegasinfo *vinfo)
66 return vinfo->tcpv_rtt;
69 void idiagnl_vegasinfo_set_rtt(
struct idiagnl_vegasinfo *vinfo, uint32_t rtt)
71 vinfo->tcpv_rtt = rtt;
74 uint32_t idiagnl_vegasinfo_get_minrtt(
const struct idiagnl_vegasinfo *vinfo)
76 return vinfo->tcpv_minrtt;
79 void idiagnl_vegasinfo_set_minrtt(
struct idiagnl_vegasinfo *vinfo, uint32_t
82 vinfo->tcpv_minrtt = minrtt;
87 static int idiagnl_vegasinfo_compare(
struct nl_object *_a,
struct nl_object *_b,
88 uint32_t attrs,
int flags)
90 struct idiagnl_vegasinfo *a = (
struct idiagnl_vegasinfo *) _a;
91 struct idiagnl_vegasinfo *b = (
struct idiagnl_vegasinfo *) _b;
95 return a->tcpv_enabled != b->tcpv_enabled ||
96 a->tcpv_rttcnt != b->tcpv_rttcnt ||
97 a->tcpv_rtt != b->tcpv_rtt ||
98 a->tcpv_minrtt != b->tcpv_minrtt;
101 struct nl_object_ops idiagnl_vegasinfo_obj_ops = {
102 .oo_name =
"idiag/idiag_vegasinfo",
103 .oo_size =
sizeof(
struct idiagnl_vegasinfo),
104 .oo_compare = idiagnl_vegasinfo_compare,
struct nl_object * nl_object_alloc(struct nl_object_ops *ops)
Allocate a new object of kind specified by the operations handle.
void nl_object_get(struct nl_object *obj)
Acquire a reference on a object.
void nl_object_put(struct nl_object *obj)
Release a reference from an object.