1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507
|
%module capi
%{
#include <netlink/route/rtnl.h>
#include <netlink/route/link.h>
#include <netlink/route/link/vlan.h>
#include <netlink/route/link/macvlan.h>
#include <netlink/route/link/vxlan.h>
#include <netlink/route/link/bridge.h>
#include <netlink/route/link/inet.h>
#include <netlink/route/tc.h>
#include <netlink/route/qdisc.h>
#include <netlink/route/class.h>
#include <netlink/route/classifier.h>
#include <netlink/route/qdisc/htb.h>
#include <netlink/route/addr.h>
%}
%include <stdint.i>
%include <cstring.i>
%inline %{
struct nl_object *link2obj(struct rtnl_link *link)
{
return OBJ_CAST(link);
}
struct rtnl_link *obj2link(struct nl_object *obj)
{
return (struct rtnl_link *) obj;
}
struct rtnl_link *get_from_kernel(struct nl_sock *sk, int ifindex, const char *name)
{
struct rtnl_link *link;
if (rtnl_link_get_kernel(sk, ifindex, name, &link) < 0)
return NULL;
return link;
}
uint32_t inet_get_conf(struct rtnl_link *link, const unsigned int id)
{
uint32_t result;
if (rtnl_link_inet_get_conf(link, id, &result) < 0)
return 0;
return result;
}
%};
extern struct nl_object *link2obj(struct rtnl_link *);
extern struct rtnl_link *obj2link(struct nl_object *);
/* <netlink/route/rtnl.h> */
%cstring_output_maxsize(char *buf, size_t len)
extern char * rtnl_scope2str(int, char *buf, size_t len);
extern int rtnl_str2scope(const char *);
/* <netlink/route/link.h> */
extern struct rtnl_link *rtnl_link_alloc(void);
extern struct rtnl_link *rtnl_link_get(struct nl_cache *, int);
extern struct rtnl_link *rtnl_link_get_by_name(struct nl_cache *, const char *);
extern int rtnl_link_build_add_request(struct rtnl_link *, int, struct nl_msg **);
extern int rtnl_link_add(struct nl_sock *, struct rtnl_link *, int);
extern int rtnl_link_build_change_request(struct rtnl_link *, struct rtnl_link *, int, struct nl_msg **);
extern int rtnl_link_change(struct nl_sock *, struct rtnl_link *, struct rtnl_link *, int);
extern int rtnl_link_build_delete_request(const struct rtnl_link *, struct nl_msg **);
extern int rtnl_link_delete(struct nl_sock *, const struct rtnl_link *);
extern int rtnl_link_build_get_request(int, const char *, struct nl_msg **);
extern char *rtnl_link_stat2str(int, char *, size_t);
extern int rtnl_link_str2stat(const char *);
%cstring_output_maxsize(char *buf, size_t len)
extern char *rtnl_link_flags2str(int, char *buf, size_t len);
extern int rtnl_link_str2flags(const char *);
%cstring_output_maxsize(char *buf, size_t len)
extern char *rtnl_link_operstate2str(uint8_t, char *buf, size_t len);
extern int rtnl_link_str2operstate(const char *);
%cstring_output_maxsize(char *buf, size_t len)
extern char *rtnl_link_mode2str(uint8_t, char *buf, size_t len);
extern int rtnl_link_str2mode(const char *);
extern void rtnl_link_set_qdisc(struct rtnl_link *, const char *);
extern char *rtnl_link_get_qdisc(struct rtnl_link *);
extern void rtnl_link_set_name(struct rtnl_link *, const char *);
extern char *rtnl_link_get_name(struct rtnl_link *);
extern void rtnl_link_set_flags(struct rtnl_link *, unsigned int);
extern void rtnl_link_unset_flags(struct rtnl_link *, unsigned int);
extern unsigned int rtnl_link_get_flags(struct rtnl_link *);
extern void rtnl_link_set_mtu(struct rtnl_link *, unsigned int);
extern unsigned int rtnl_link_get_mtu(struct rtnl_link *);
extern void rtnl_link_set_txqlen(struct rtnl_link *, unsigned int);
extern unsigned int rtnl_link_get_txqlen(struct rtnl_link *);
extern void rtnl_link_set_ifindex(struct rtnl_link *, int);
extern int rtnl_link_get_ifindex(struct rtnl_link *);
extern void rtnl_link_set_family(struct rtnl_link *, int);
extern int rtnl_link_get_family(struct rtnl_link *);
extern void rtnl_link_set_arptype(struct rtnl_link *, unsigned int);
extern unsigned int rtnl_link_get_arptype(struct rtnl_link *);
extern void rtnl_link_set_addr(struct rtnl_link *, struct nl_addr *);
extern struct nl_addr *rtnl_link_get_addr(struct rtnl_link *);
extern void rtnl_link_set_broadcast(struct rtnl_link *, struct nl_addr *);
extern struct nl_addr *rtnl_link_get_broadcast(struct rtnl_link *);
extern void rtnl_link_set_link(struct rtnl_link *, int);
extern int rtnl_link_get_link(struct rtnl_link *);
extern void rtnl_link_set_master(struct rtnl_link *, int);
extern int rtnl_link_get_master(struct rtnl_link *);
extern void rtnl_link_set_operstate(struct rtnl_link *, uint8_t);
extern uint8_t rtnl_link_get_operstate(struct rtnl_link *);
extern void rtnl_link_set_linkmode(struct rtnl_link *, uint8_t);
extern uint8_t rtnl_link_get_linkmode(struct rtnl_link *);
extern const char *rtnl_link_get_ifalias(struct rtnl_link *);
extern void rtnl_link_set_ifalias(struct rtnl_link *, const char *);
extern int rtnl_link_get_num_vf(struct rtnl_link *, uint32_t *);
extern uint64_t rtnl_link_get_stat(struct rtnl_link *, int);
extern int rtnl_link_set_stat(struct rtnl_link *, const unsigned int, const uint64_t);
extern int rtnl_link_set_type(struct rtnl_link *, const char *);
extern char *rtnl_link_get_type(struct rtnl_link *);
extern int rtnl_link_enslave(struct nl_sock * sock, struct rtnl_link * master, struct rtnl_link * slave);
extern int rtnl_link_release(struct nl_sock * sock, struct rtnl_link * slave);
/* <netlink/route/link/vlan.h> */
struct vlan_map
{
uint32_t vm_from;
uint32_t vm_to;
};
#define VLAN_PRIO_MAX 7
%cstring_output_maxsize(char *buf, size_t len)
extern char *rtnl_link_vlan_flags2str(int, char *buf, size_t len);
extern int rtnl_link_vlan_str2flags(const char *);
extern int rtnl_link_vlan_set_id(struct rtnl_link *, int);
extern int rtnl_link_vlan_get_id(struct rtnl_link *);
extern int rtnl_link_vlan_set_flags(struct rtnl_link *, unsigned int);
extern int rtnl_link_vlan_unset_flags(struct rtnl_link *, unsigned int);
extern unsigned int rtnl_link_vlan_get_flags(struct rtnl_link *);
extern int rtnl_link_vlan_set_ingress_map(struct rtnl_link *, int, uint32_t);
extern uint32_t *rtnl_link_vlan_get_ingress_map(struct rtnl_link *);
extern int rtnl_link_vlan_set_egress_map(struct rtnl_link *, uint32_t, int);
extern struct vlan_map *rtnl_link_vlan_get_egress_map(struct rtnl_link *, int *);
/* <netlink/route/link/macvlan.h> */
%cstring_output_maxsize(char *buf, size_t len)
extern struct rtnl_link *rtnl_link_macvlan_alloc(void);
extern int rtnl_link_is_macvlan(struct rtnl_link *);
extern char * rtnl_link_macvlan_mode2str(int, char *, size_t);
extern int rtnl_link_macvlan_str2mode(const char *);
extern char * rtnl_link_macvlan_flags2str(int, char *, size_t);
extern int rtnl_link_macvlan_str2flags(const char *);
extern int rtnl_link_macvlan_set_mode(struct rtnl_link *, uint32_t);
extern uint32_t rtnl_link_macvlan_get_mode(struct rtnl_link *);
extern int rtnl_link_macvlan_set_flags(struct rtnl_link *, uint16_t);
extern int rtnl_link_macvlan_unset_flags(struct rtnl_link *, uint16_t);
extern uint16_t rtnl_link_macvlan_get_flags(struct rtnl_link *);
/* <netlink/route/link/vxlan.h> */
#define VXLAN_ID_MAX 16777215
extern struct rtnl_link *rtnl_link_vxlan_alloc(void);
extern int rtnl_link_is_vxlan(struct rtnl_link *);
extern int rtnl_link_vxlan_set_id(struct rtnl_link *, uint32_t);
extern int rtnl_link_vxlan_get_id(struct rtnl_link *, uint32_t *);
extern int rtnl_link_vxlan_set_group(struct rtnl_link *, struct nl_addr *);
extern int rtnl_link_vxlan_get_group(struct rtnl_link *, struct nl_addr **);
extern int rtnl_link_vxlan_set_link(struct rtnl_link *, uint32_t);
extern int rtnl_link_vxlan_get_link(struct rtnl_link *, uint32_t *);
extern int rtnl_link_vxlan_set_local(struct rtnl_link *, struct nl_addr *);
extern int rtnl_link_vxlan_get_local(struct rtnl_link *, struct nl_addr **);
extern int rtnl_link_vxlan_set_ttl(struct rtnl_link *, uint8_t);
extern int rtnl_link_vxlan_get_ttl(struct rtnl_link *);
extern int rtnl_link_vxlan_set_tos(struct rtnl_link *, uint8_t);
extern int rtnl_link_vxlan_get_tos(struct rtnl_link *);
extern int rtnl_link_vxlan_set_learning(struct rtnl_link *, uint8_t);
extern int rtnl_link_vxlan_get_learning(struct rtnl_link *);
extern int rtnl_link_vxlan_enable_learning(struct rtnl_link *);
extern int rtnl_link_vxlan_disable_learning(struct rtnl_link *);
extern int rtnl_link_vxlan_set_ageing(struct rtnl_link *, uint32_t);
extern int rtnl_link_vxlan_get_ageing(struct rtnl_link *, uint32_t *);
extern int rtnl_link_vxlan_set_limit(struct rtnl_link *, uint32_t);
extern int rtnl_link_vxlan_get_limit(struct rtnl_link *, uint32_t *);
extern int rtnl_link_vxlan_set_port_range(struct rtnl_link *,
struct ifla_vxlan_port_range *);
extern int rtnl_link_vxlan_get_port_range(struct rtnl_link *,
struct ifla_vxlan_port_range *);
extern int rtnl_link_vxlan_set_proxy(struct rtnl_link *, uint8_t);
extern int rtnl_link_vxlan_get_proxy(struct rtnl_link *);
extern int rtnl_link_vxlan_enable_proxy(struct rtnl_link *);
extern int rtnl_link_vxlan_disable_proxy(struct rtnl_link *);
extern int rtnl_link_vxlan_set_rsc(struct rtnl_link *, uint8_t);
extern int rtnl_link_vxlan_get_rsc(struct rtnl_link *);
extern int rtnl_link_vxlan_enable_rsc(struct rtnl_link *);
extern int rtnl_link_vxlan_disable_rsc(struct rtnl_link *);
extern int rtnl_link_vxlan_set_l2miss(struct rtnl_link *, uint8_t);
extern int rtnl_link_vxlan_get_l2miss(struct rtnl_link *);
extern int rtnl_link_vxlan_enable_l2miss(struct rtnl_link *);
extern int rtnl_link_vxlan_disable_l2miss(struct rtnl_link *);
extern int rtnl_link_vxlan_set_l3miss(struct rtnl_link *, uint8_t);
extern int rtnl_link_vxlan_get_l3miss(struct rtnl_link *);
extern int rtnl_link_vxlan_enable_l3miss(struct rtnl_link *);
extern int rtnl_link_vxlan_disable_l3miss(struct rtnl_link *);
/* <netlink/route/link/bridge.h> */
enum rtnl_link_bridge_flags {
RTNL_BRIDGE_HAIRPIN_MODE = 0x0001,
RTNL_BRIDGE_BPDU_GUARD = 0x0002,
RTNL_BRIDGE_ROOT_BLOCK = 0x0004,
RTNL_BRIDGE_FAST_LEAVE = 0x0008,
};
extern int rtnl_link_is_bridge(struct rtnl_link *);
extern int rtnl_link_bridge_has_ext_info(struct rtnl_link *);
extern int rtnl_link_bridge_set_port_state(struct rtnl_link *, uint8_t );
extern int rtnl_link_bridge_get_port_state(struct rtnl_link *);
extern int rtnl_link_bridge_set_priority(struct rtnl_link *, uint16_t);
extern int rtnl_link_bridge_get_priority(struct rtnl_link *);
extern int rtnl_link_bridge_set_cost(struct rtnl_link *, uint32_t);
extern int rtnl_link_bridge_get_cost(struct rtnl_link *, uint32_t *);
extern int rtnl_link_bridge_unset_flags(struct rtnl_link *, unsigned int);
extern int rtnl_link_bridge_set_flags(struct rtnl_link *, unsigned int);
extern int rtnl_link_bridge_get_flags(struct rtnl_link *);
extern char * rtnl_link_bridge_flags2str(int, char *, size_t);
extern int rtnl_link_bridge_str2flags(const char *);
/* <netlink/route/link/inet.h> */
%cstring_output_maxsize(char *buf, size_t len)
extern const char *rtnl_link_inet_devconf2str(int, char *buf, size_t len);
extern unsigned int rtnl_link_inet_str2devconf(const char *);
extern int rtnl_link_inet_set_conf(struct rtnl_link *, const unsigned int, uint32_t);
/* <netlink/route/tc.h> */
%inline %{
uint32_t tc_str2handle(const char *name)
{
uint32_t result;
if (rtnl_tc_str2handle(name, &result) < 0)
return 0;
return result;
}
%};
extern void rtnl_tc_set_ifindex(struct rtnl_tc *, int);
extern int rtnl_tc_get_ifindex(struct rtnl_tc *);
extern void rtnl_tc_set_link(struct rtnl_tc *, struct rtnl_link *);
extern struct rtnl_link *rtnl_tc_get_link(struct rtnl_tc *);
extern void rtnl_tc_set_mtu(struct rtnl_tc *, uint32_t);
extern uint32_t rtnl_tc_get_mtu(struct rtnl_tc *);
extern void rtnl_tc_set_mpu(struct rtnl_tc *, uint32_t);
extern uint32_t rtnl_tc_get_mpu(struct rtnl_tc *);
extern void rtnl_tc_set_overhead(struct rtnl_tc *, uint32_t);
extern uint32_t rtnl_tc_get_overhead(struct rtnl_tc *);
extern void rtnl_tc_set_linktype(struct rtnl_tc *, uint32_t);
extern uint32_t rtnl_tc_get_linktype(struct rtnl_tc *);
extern void rtnl_tc_set_handle(struct rtnl_tc *, uint32_t);
extern uint32_t rtnl_tc_get_handle(struct rtnl_tc *);
extern void rtnl_tc_set_parent(struct rtnl_tc *, uint32_t);
extern uint32_t rtnl_tc_get_parent(struct rtnl_tc *);
extern int rtnl_tc_set_kind(struct rtnl_tc *, const char *);
extern char * rtnl_tc_get_kind(struct rtnl_tc *);
extern uint64_t rtnl_tc_get_stat(struct rtnl_tc *, enum rtnl_tc_stat);
extern int rtnl_tc_calc_txtime(int, int);
extern int rtnl_tc_calc_bufsize(int, int);
extern int rtnl_tc_calc_cell_log(int);
extern int rtnl_tc_read_classid_file(void);
%cstring_output_maxsize(char *buf, size_t len)
extern char * rtnl_tc_handle2str(uint32_t, char *buf, size_t len);
extern int rtnl_classid_generate(const char *, uint32_t *, uint32_t);
/* <netlink/route/qdisc.h> */
%inline %{
struct nl_object *qdisc2obj(struct rtnl_qdisc *qdisc)
{
return OBJ_CAST(qdisc);
}
struct rtnl_qdisc *obj2qdisc(struct nl_object *obj)
{
return (struct rtnl_qdisc *) obj;
}
struct nl_object *class2obj(struct rtnl_class *cl)
{
return OBJ_CAST(cl);
}
struct rtnl_class *obj2class(struct nl_object *obj)
{
return (struct rtnl_class *) obj;
}
struct nl_object *cls2obj(struct rtnl_cls *cls)
{
return OBJ_CAST(cls);
}
struct rtnl_cls *obj2cls(struct nl_object *obj)
{
return (struct rtnl_cls *) obj;
}
struct rtnl_tc *obj2tc(struct nl_object *obj)
{
return TC_CAST(obj);
}
%};
extern struct rtnl_qdisc *
rtnl_qdisc_alloc(void);
extern struct rtnl_qdisc *
rtnl_qdisc_get(struct nl_cache *, int, uint32_t);
extern struct rtnl_qdisc *
rtnl_qdisc_get_by_parent(struct nl_cache *, int, uint32_t);
extern int rtnl_qdisc_build_add_request(struct rtnl_qdisc *, int,
struct nl_msg **);
extern int rtnl_qdisc_add(struct nl_sock *, struct rtnl_qdisc *, int);
extern int rtnl_qdisc_build_update_request(struct rtnl_qdisc *,
struct rtnl_qdisc *,
int, struct nl_msg **);
extern int rtnl_qdisc_update(struct nl_sock *, struct rtnl_qdisc *,
struct rtnl_qdisc *, int);
extern int rtnl_qdisc_build_delete_request(struct rtnl_qdisc *,
struct nl_msg **);
extern int rtnl_qdisc_delete(struct nl_sock *, struct rtnl_qdisc *);
/* <netlink/route/classifier.h> */
extern struct rtnl_cls *rtnl_cls_alloc(void);
extern void rtnl_cls_put(struct rtnl_cls *);
extern int rtnl_cls_add(struct nl_sock *, struct rtnl_cls *, int);
extern int rtnl_cls_delete(struct nl_sock *, struct rtnl_cls *,
int);
extern void rtnl_cls_set_prio(struct rtnl_cls *, uint16_t);
extern uint16_t rtnl_cls_get_prio(struct rtnl_cls *);
extern void rtnl_cls_set_protocol(struct rtnl_cls *, uint16_t);
extern uint16_t rtnl_cls_get_protocol(struct rtnl_cls *);
/* <netlink/route/qdisc/htb.h> */
extern uint32_t rtnl_htb_get_rate2quantum(struct rtnl_qdisc *);
extern int rtnl_htb_set_rate2quantum(struct rtnl_qdisc *, uint32_t);
extern uint32_t rtnl_htb_get_defcls(struct rtnl_qdisc *);
extern int rtnl_htb_set_defcls(struct rtnl_qdisc *, uint32_t);
extern uint32_t rtnl_htb_get_prio(struct rtnl_class *);
extern int rtnl_htb_set_prio(struct rtnl_class *, uint32_t);
extern uint32_t rtnl_htb_get_rate(struct rtnl_class *);
extern int rtnl_htb_set_rate(struct rtnl_class *, uint32_t);
extern uint32_t rtnl_htb_get_ceil(struct rtnl_class *);
extern int rtnl_htb_set_ceil(struct rtnl_class *, uint32_t);
extern uint32_t rtnl_htb_get_rbuffer(struct rtnl_class *);
extern int rtnl_htb_set_rbuffer(struct rtnl_class *, uint32_t);
extern uint32_t rtnl_htb_get_cbuffer(struct rtnl_class *);
extern int rtnl_htb_set_cbuffer(struct rtnl_class *, uint32_t);
extern uint32_t rtnl_htb_get_quantum(struct rtnl_class *);
extern int rtnl_htb_set_quantum(struct rtnl_class *, uint32_t);
extern int rtnl_htb_get_level(struct rtnl_class *);
/* <netlink/route/addr.h> */
%inline %{
struct nl_object *addr2obj(struct rtnl_addr *addr)
{
return OBJ_CAST(addr);
}
struct rtnl_addr *obj2addr(struct nl_object *obj)
{
return (struct rtnl_addr *) obj;
}
%};
extern struct rtnl_addr *rtnl_addr_alloc(void);
extern struct rtnl_addr *
rtnl_addr_get(struct nl_cache *, int, struct nl_addr *);
extern int rtnl_addr_build_add_request(struct rtnl_addr *, int,
struct nl_msg **);
extern int rtnl_addr_add(struct nl_sock *, struct rtnl_addr *, int);
extern int rtnl_addr_build_delete_request(struct rtnl_addr *, int,
struct nl_msg **);
extern int rtnl_addr_delete(struct nl_sock *,
struct rtnl_addr *, int);
%cstring_output_maxsize(char *buf, size_t len)
extern char * rtnl_addr_flags2str(int, char *buf, size_t len);
extern int rtnl_addr_str2flags(const char *);
extern int rtnl_addr_set_label(struct rtnl_addr *, const char *);
extern char * rtnl_addr_get_label(struct rtnl_addr *);
extern void rtnl_addr_set_ifindex(struct rtnl_addr *, int);
extern int rtnl_addr_get_ifindex(struct rtnl_addr *);
extern void rtnl_addr_set_link(struct rtnl_addr *, struct rtnl_link *);
extern struct rtnl_link *
rtnl_addr_get_link(struct rtnl_addr *);
extern void rtnl_addr_set_family(struct rtnl_addr *, int);
extern int rtnl_addr_get_family(struct rtnl_addr *);
extern void rtnl_addr_set_prefixlen(struct rtnl_addr *, int);
extern int rtnl_addr_get_prefixlen(struct rtnl_addr *);
extern void rtnl_addr_set_scope(struct rtnl_addr *, int);
extern int rtnl_addr_get_scope(struct rtnl_addr *);
extern void rtnl_addr_set_flags(struct rtnl_addr *, unsigned int);
extern void rtnl_addr_unset_flags(struct rtnl_addr *, unsigned int);
extern unsigned int rtnl_addr_get_flags(struct rtnl_addr *);
extern int rtnl_addr_set_local(struct rtnl_addr *,
struct nl_addr *);
extern struct nl_addr *rtnl_addr_get_local(struct rtnl_addr *);
extern int rtnl_addr_set_peer(struct rtnl_addr *, struct nl_addr *);
extern struct nl_addr *rtnl_addr_get_peer(struct rtnl_addr *);
extern int rtnl_addr_set_broadcast(struct rtnl_addr *, struct nl_addr *);
extern struct nl_addr *rtnl_addr_get_broadcast(struct rtnl_addr *);
extern int rtnl_addr_set_multicast(struct rtnl_addr *, struct nl_addr *);
extern struct nl_addr *rtnl_addr_get_multicast(struct rtnl_addr *);
extern int rtnl_addr_set_anycast(struct rtnl_addr *, struct nl_addr *);
extern struct nl_addr *rtnl_addr_get_anycast(struct rtnl_addr *);
extern uint32_t rtnl_addr_get_valid_lifetime(struct rtnl_addr *);
extern void rtnl_addr_set_valid_lifetime(struct rtnl_addr *, uint32_t);
extern uint32_t rtnl_addr_get_preferred_lifetime(struct rtnl_addr *);
extern void rtnl_addr_set_preferred_lifetime(struct rtnl_addr *, uint32_t);
extern uint32_t rtnl_addr_get_create_time(struct rtnl_addr *);
extern uint32_t rtnl_addr_get_last_update_time(struct rtnl_addr *);
|