]>
git.proxmox.com Git - mirror_frr.git/blob - nhrpd/znl.h
1 /* Netlink helpers for zbuf
2 * Copyright (c) 2014-2015 Timo Teräs
4 * This file is free software: you may copy, redistribute and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
12 #define ZNL_BUFFER_SIZE 8192
14 void *znl_push(struct zbuf
*zb
, size_t n
);
15 void *znl_pull(struct zbuf
*zb
, size_t n
);
17 struct nlmsghdr
*znl_nlmsg_push(struct zbuf
*zb
, uint16_t type
, uint16_t flags
);
18 void znl_nlmsg_complete(struct zbuf
*zb
, struct nlmsghdr
*n
);
19 struct nlmsghdr
*znl_nlmsg_pull(struct zbuf
*zb
, struct zbuf
*payload
);
21 struct rtattr
*znl_rta_push(struct zbuf
*zb
, uint16_t type
, const void *val
,
23 struct rtattr
*znl_rta_push_u32(struct zbuf
*zb
, uint16_t type
, uint32_t val
);
24 struct rtattr
*znl_rta_nested_push(struct zbuf
*zb
, uint16_t type
);
25 void znl_rta_nested_complete(struct zbuf
*zb
, struct rtattr
*rta
);
27 struct rtattr
*znl_rta_pull(struct zbuf
*zb
, struct zbuf
*payload
);
29 int znl_open(int protocol
, int groups
);