#define NETLINK_IDIAGNL_H_
#include <netlink/netlink.h>
+#include <linux/sock_diag.h>
#ifdef __cplusplus
extern "C" {
*/
#define IDIAG_ATTR_ALL ((1<<IDIAG_ATTR_MAX)-1)
-/**
- * Socket memory info identifiers
- * @ingroup idiag
- */
-enum {
- IDIAG_SK_MEMINFO_RMEM_ALLOC,
- IDIAG_SK_MEMINFO_RCVBUF,
- IDIAG_SK_MEMINFO_WMEM_ALLOC,
- IDIAG_SK_MEMINFO_SNDBUF,
- IDIAG_SK_MEMINFO_FWD_ALLOC,
- IDIAG_SK_MEMINFO_WMEM_QUEUED,
- IDIAG_SK_MEMINFO_OPTMEM,
- IDIAG_SK_MEMINFO_BACKLOG,
-
- IDIAG_SK_MEMINFO_VARS,
-};
+/* Keep these only for compatibility, DO NOT USE THEM */
+#define IDIAG_SK_MEMINFO_RMEM_ALLOC SK_MEMINFO_RMEM_ALLOC
+#define IDIAG_SK_MEMINFO_RCVBUF SK_MEMINFO_RCVBUF
+#define IDIAG_SK_MEMINFO_WMEM_ALLOC SK_MEMINFO_WMEM_ALLOC
+#define IDIAG_SK_MEMINFO_SNDBUF SK_MEMINFO_SNDBUF
+#define IDIAG_SK_MEMINFO_FWD_ALLOC SK_MEMINFO_FWD_ALLOC
+#define IDIAG_SK_MEMINFO_WMEM_QUEUED SK_MEMINFO_WMEM_QUEUED
+#define IDIAG_SK_MEMINFO_OPTMEM SK_MEMINFO_OPTMEM
+#define IDIAG_SK_MEMINFO_BACKLOG SK_MEMINFO_BACKLOG
+#define IDIAG_SK_MEMINFO_VARS SK_MEMINFO_VARS
/**
* Socket timer indentifiers
nl_dump(p, "skmeminfo: [\n");
nl_dump(p, "\trmem alloc: %d\n",
- msg->idiag_skmeminfo[IDIAG_SK_MEMINFO_RMEM_ALLOC]);
+ msg->idiag_skmeminfo[SK_MEMINFO_RMEM_ALLOC]);
nl_dump(p, "\trcv buf: %s\n",
- nl_size2str(msg->idiag_skmeminfo[IDIAG_SK_MEMINFO_RCVBUF],
+ nl_size2str(msg->idiag_skmeminfo[SK_MEMINFO_RCVBUF],
buf, sizeof(buf)));
nl_dump(p, "\twmem alloc: %d\n",
- msg->idiag_skmeminfo[IDIAG_SK_MEMINFO_WMEM_ALLOC]);
+ msg->idiag_skmeminfo[SK_MEMINFO_WMEM_ALLOC]);
nl_dump(p, "\tsnd buf: %s\n",
- nl_size2str(msg->idiag_skmeminfo[IDIAG_SK_MEMINFO_SNDBUF],
+ nl_size2str(msg->idiag_skmeminfo[SK_MEMINFO_SNDBUF],
buf, sizeof(buf)));
nl_dump(p, "\tfwd alloc: %d\n",
- msg->idiag_skmeminfo[IDIAG_SK_MEMINFO_FWD_ALLOC]);
+ msg->idiag_skmeminfo[SK_MEMINFO_FWD_ALLOC]);
nl_dump(p, "\twmem queued: %s\n",
- nl_size2str(msg->idiag_skmeminfo[IDIAG_SK_MEMINFO_WMEM_QUEUED],
+ nl_size2str(msg->idiag_skmeminfo[SK_MEMINFO_WMEM_QUEUED],
buf, sizeof(buf)));
nl_dump(p, "\topt mem: %d\n",
- msg->idiag_skmeminfo[IDIAG_SK_MEMINFO_OPTMEM]);
+ msg->idiag_skmeminfo[SK_MEMINFO_OPTMEM]);
nl_dump(p, "\tbacklog: %d\n",
- msg->idiag_skmeminfo[IDIAG_SK_MEMINFO_BACKLOG]);
+ msg->idiag_skmeminfo[SK_MEMINFO_BACKLOG]);
nl_dump(p, "]\n\n");
}
[IDIAG_ATTR_CONG] = { .type = NLA_STRING },
[IDIAG_ATTR_TOS] = { .type = NLA_U8 },
[IDIAG_ATTR_TCLASS] = { .type = NLA_U8 },
- [IDIAG_ATTR_SKMEMINFO] = { .minlen = (sizeof(uint32_t) * IDIAG_SK_MEMINFO_VARS) },
+ /* Older kernel doesn't have SK_MEMINFO_BACKLOG */
+ [IDIAG_ATTR_SKMEMINFO] = { .minlen = (sizeof(uint32_t) * (SK_MEMINFO_OPTMEM + 1)) },
[IDIAG_ATTR_SHUTDOWN] = { .type = NLA_U8 },
};