diff options
author | Richard Alpe <richard.alpe@ericsson.com> | 2014-11-20 04:29:10 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-21 15:01:30 -0500 |
commit | 34b78a127c4fd57cf3d5c64031693d10a8e0fae1 (patch) | |
tree | fbba2542705341c45f9a270e46aca9b819ed17f7 /net/tipc/netlink.c | |
parent | 315c00bc9f2bd17f7ad7ed8119ca49b1125af507 (diff) |
tipc: add sock dump to new netlink api
Add TIPC_NL_SOCK_GET command to the new tipc netlink API.
This command supports dumping of all available sockets with their
associated connection or publication(s). It could be extended to reply
with a single socket if the NLM_F_DUMP isn't set.
The information about a socket includes reference, address, connection
information / publication information.
Netlink logical layout of response message:
-> socket
-> reference
-> address
[
-> connection
-> node
-> socket
[
-> connected flag
-> type
-> instance
]
]
[
-> publication flag
]
Signed-off-by: Richard Alpe <richard.alpe@ericsson.com>
Reviewed-by: Erik Hugne <erik.hugne@ericsson.com>
Reviewed-by: Jon Maloy <jon.maloy@ericsson.com>
Acked-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc/netlink.c')
-rw-r--r-- | net/tipc/netlink.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/tipc/netlink.c b/net/tipc/netlink.c index a5291314a210..951fabeec8b7 100644 --- a/net/tipc/netlink.c +++ b/net/tipc/netlink.c | |||
@@ -36,6 +36,7 @@ | |||
36 | 36 | ||
37 | #include "core.h" | 37 | #include "core.h" |
38 | #include "config.h" | 38 | #include "config.h" |
39 | #include "socket.h" | ||
39 | #include "bearer.h" | 40 | #include "bearer.h" |
40 | #include <net/genetlink.h> | 41 | #include <net/genetlink.h> |
41 | 42 | ||
@@ -72,6 +73,7 @@ static int handle_cmd(struct sk_buff *skb, struct genl_info *info) | |||
72 | static const struct nla_policy tipc_nl_policy[TIPC_NLA_MAX + 1] = { | 73 | static const struct nla_policy tipc_nl_policy[TIPC_NLA_MAX + 1] = { |
73 | [TIPC_NLA_UNSPEC] = { .type = NLA_UNSPEC, }, | 74 | [TIPC_NLA_UNSPEC] = { .type = NLA_UNSPEC, }, |
74 | [TIPC_NLA_BEARER] = { .type = NLA_NESTED, }, | 75 | [TIPC_NLA_BEARER] = { .type = NLA_NESTED, }, |
76 | [TIPC_NLA_SOCK] = { .type = NLA_NESTED, }, | ||
75 | }; | 77 | }; |
76 | 78 | ||
77 | /* Legacy ASCII API */ | 79 | /* Legacy ASCII API */ |
@@ -123,6 +125,11 @@ static const struct genl_ops tipc_genl_v2_ops[] = { | |||
123 | .cmd = TIPC_NL_BEARER_SET, | 125 | .cmd = TIPC_NL_BEARER_SET, |
124 | .doit = tipc_nl_bearer_set, | 126 | .doit = tipc_nl_bearer_set, |
125 | .policy = tipc_nl_policy, | 127 | .policy = tipc_nl_policy, |
128 | }, | ||
129 | { | ||
130 | .cmd = TIPC_NL_SOCK_GET, | ||
131 | .dumpit = tipc_nl_sk_dump, | ||
132 | .policy = tipc_nl_policy, | ||
126 | } | 133 | } |
127 | }; | 134 | }; |
128 | 135 | ||