tipc: implement socket diagnostics for AF_TIPC
authorGhantaKrishnamurthy MohanKrishna <mohan.krishna.ghanta.krishnamurthy@ericsson.com>
Wed, 21 Mar 2018 13:37:44 +0000 (14:37 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 22 Mar 2018 18:43:35 +0000 (14:43 -0400)
commitc30b70deb5f4861f590031c33fd3ec6cc63f1df1
treee2c0d01bb5f748d9674e962f71c536c1ae03f0e5
parentdfde331e757fd792e1c9579b72a8370ca665e5ed
tipc: implement socket diagnostics for AF_TIPC

This commit adds socket diagnostics capability for AF_TIPC in netlink
family NETLINK_SOCK_DIAG in a new kernel module (diag.ko).

The following are key design considerations:
- config TIPC_DIAG has default y, like INET_DIAG.
- only requests with flag NLM_F_DUMP is supported (dump all).
- tipc_sock_diag_req message is introduced to send filter parameters.
- the response attributes are of TLV, some nested.

To avoid exposing data structures between diag and tipc modules and
avoid code duplication, the following additions are required:
- export tipc_nl_sk_walk function to reuse socket iterator.
- export tipc_sk_fill_sock_diag to fill the tipc diag attributes.
- create a sock_diag response message in __tipc_add_sock_diag defined
  in diag.c and use the above exported tipc_sk_fill_sock_diag
  to fill response.

Acked-by: Jon Maloy <jon.maloy@ericsson.com>
Acked-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: GhantaKrishnamurthy MohanKrishna <mohan.krishna.ghanta.krishnamurthy@ericsson.com>
Signed-off-by: Parthasarathy Bhuvaragan <parthasarathy.bhuvaragan@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/tipc_netlink.h
include/uapi/linux/tipc_sockets_diag.h [new file with mode: 0644]
net/tipc/Kconfig
net/tipc/Makefile
net/tipc/diag.c [new file with mode: 0644]
net/tipc/socket.c
net/tipc/socket.h