13 #include <netlink-private/netlink.h> 14 #include <netlink/idiag/vegasinfo.h> 24 struct idiagnl_vegasinfo *idiagnl_vegasinfo_alloc(
void)
26 return (
struct idiagnl_vegasinfo *)
nl_object_alloc(&idiagnl_vegasinfo_obj_ops);
29 void idiagnl_vegasinfo_get(
struct idiagnl_vegasinfo *vinfo)
34 void idiagnl_vegasinfo_put(
struct idiagnl_vegasinfo *vinfo)
43 uint32_t idiagnl_vegasinfo_get_enabled(
const struct idiagnl_vegasinfo *vinfo)
45 return vinfo->tcpv_enabled;
48 void idiagnl_vegasinfo_set_enabled(
struct idiagnl_vegasinfo *vinfo, uint32_t
51 vinfo->tcpv_enabled = enabled;
54 uint32_t idiagnl_vegasinfo_get_rttcnt(
const struct idiagnl_vegasinfo *vinfo)
56 return vinfo->tcpv_rttcnt;
59 void idiagnl_vegasinfo_set_rttcnt(
struct idiagnl_vegasinfo *vinfo, uint32_t
62 vinfo->tcpv_rttcnt = rttcnt;
65 uint32_t idiagnl_vegasinfo_get_rtt(
const struct idiagnl_vegasinfo *vinfo)
67 return vinfo->tcpv_rtt;
70 void idiagnl_vegasinfo_set_rtt(
struct idiagnl_vegasinfo *vinfo, uint32_t rtt)
72 vinfo->tcpv_rtt = rtt;
75 uint32_t idiagnl_vegasinfo_get_minrtt(
const struct idiagnl_vegasinfo *vinfo)
77 return vinfo->tcpv_minrtt;
80 void idiagnl_vegasinfo_set_minrtt(
struct idiagnl_vegasinfo *vinfo, uint32_t
83 vinfo->tcpv_minrtt = minrtt;
88 static uint64_t idiagnl_vegasinfo_compare(
struct nl_object *_a,
struct nl_object *_b,
89 uint64_t attrs,
int flags)
91 struct idiagnl_vegasinfo *a = (
struct idiagnl_vegasinfo *) _a;
92 struct idiagnl_vegasinfo *b = (
struct idiagnl_vegasinfo *) _b;
96 return a->tcpv_enabled != b->tcpv_enabled ||
97 a->tcpv_rttcnt != b->tcpv_rttcnt ||
98 a->tcpv_rtt != b->tcpv_rtt ||
99 a->tcpv_minrtt != b->tcpv_minrtt;
102 struct nl_object_ops idiagnl_vegasinfo_obj_ops = {
103 .oo_name =
"idiag/idiag_vegasinfo",
104 .oo_size =
sizeof(
struct idiagnl_vegasinfo),
105 .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.