History

tipc: add link get/dump to new netlink api

Add TIPC_NL_LINK_GET command to the new tipc netlink API. This command supports dumping all information about all links (including the broadcast link) or getting all information about a specific link (not the broadcast link). The information about a link includes name, transmission info, properties and link statistics. As the tipc broadcast link is special we unfortunately have to treat it specially. It is a deliberate decision not to abstract the broadcast link on this (API) level. Netlink logical layout of link response message: -> port -> name -> MTU -> RX -> TX -> up flag -> active flag -> properties -> priority -> tolerance -> window -> statistics -> rx_info -> rx_fragments -> rx_fragmented -> rx_bundles -> rx_bundled -> tx_info -> tx_fragments -> tx_fragmented -> tx_bundles -> tx_bundled -> msg_prof_tot -> msg_len_cnt -> msg_len_tot -> msg_len_p0 -> msg_len_p1 -> msg_len_p2 -> msg_len_p3 -> msg_len_p4 -> msg_len_p5 -> msg_len_p6 -> rx_states -> rx_probes -> rx_nacks -> rx_deferred -> tx_states -> tx_probes -> tx_nacks -> tx_acks -> retransmitted -> duplicates -> link_congs -> max_queue -> avg_queue

Richard Alpe committed 11 years ago

Commit 7be57fc1 parent 1a1a1436 files · +475 −1Browse files

Showing the changes to include/uapi/linux (1 of 6 files). Show all

Unified · Split

include/uapi/linux/tipc_netlink.h+62−0
@@ -47,6 +47,7 @@ enum { · 46 unmodified lines
4747 TIPC_NL_BEARER_SET,
4848 TIPC_NL_SOCK_GET,
4949 TIPC_NL_PUBL_GET,
50+ TIPC_NL_LINK_GET,
5051
5152 __TIPC_NL_CMD_MAX,
5253 TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1
@@ -58,6 +59,7 @@ enum { · 5 unmodified lines
5859 TIPC_NLA_BEARER, /* nest */
5960 TIPC_NLA_SOCK, /* nest */
6061 TIPC_NLA_PUBL, /* nest */
62+ TIPC_NLA_LINK, /* nest */
6163
6264 __TIPC_NLA_MAX,
6365 TIPC_NLA_MAX = __TIPC_NLA_MAX - 1
@@ -86,6 +88,24 @@ enum { · 22 unmodified lines
8688 TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1
8789 };
8890
91+/* Link info */
92+enum {
93+ TIPC_NLA_LINK_UNSPEC,
94+ TIPC_NLA_LINK_NAME, /* string */
95+ TIPC_NLA_LINK_DEST, /* u32 */
96+ TIPC_NLA_LINK_MTU, /* u32 */
97+ TIPC_NLA_LINK_BROADCAST, /* flag */
98+ TIPC_NLA_LINK_UP, /* flag */
99+ TIPC_NLA_LINK_ACTIVE, /* flag */
100+ TIPC_NLA_LINK_PROP, /* nest */
101+ TIPC_NLA_LINK_STATS, /* nest */
102+ TIPC_NLA_LINK_RX, /* u32 */
103+ TIPC_NLA_LINK_TX, /* u32 */
104+
105+ __TIPC_NLA_LINK_MAX,
106+ TIPC_NLA_LINK_MAX = __TIPC_NLA_LINK_MAX - 1
107+};
108+
89109 /* Publication info */
90110 enum {
91111 TIPC_NLA_PUBL_UNSPEC,
@@ -128,4 +148,46 @@ enum { · 36 unmodified lines
128148 TIPC_NLA_PROP_MAX = __TIPC_NLA_PROP_MAX - 1
129149 };
130150
151+/* Nest, statistics info */
152+enum {
153+ TIPC_NLA_STATS_UNSPEC,
154+
155+ TIPC_NLA_STATS_RX_INFO, /* u32 */
156+ TIPC_NLA_STATS_RX_FRAGMENTS, /* u32 */
157+ TIPC_NLA_STATS_RX_FRAGMENTED, /* u32 */
158+ TIPC_NLA_STATS_RX_BUNDLES, /* u32 */
159+ TIPC_NLA_STATS_RX_BUNDLED, /* u32 */
160+ TIPC_NLA_STATS_TX_INFO, /* u32 */
161+ TIPC_NLA_STATS_TX_FRAGMENTS, /* u32 */
162+ TIPC_NLA_STATS_TX_FRAGMENTED, /* u32 */
163+ TIPC_NLA_STATS_TX_BUNDLES, /* u32 */
164+ TIPC_NLA_STATS_TX_BUNDLED, /* u32 */
165+ TIPC_NLA_STATS_MSG_PROF_TOT, /* u32 */
166+ TIPC_NLA_STATS_MSG_LEN_CNT, /* u32 */
167+ TIPC_NLA_STATS_MSG_LEN_TOT, /* u32 */
168+ TIPC_NLA_STATS_MSG_LEN_P0, /* u32 */
169+ TIPC_NLA_STATS_MSG_LEN_P1, /* u32 */
170+ TIPC_NLA_STATS_MSG_LEN_P2, /* u32 */
171+ TIPC_NLA_STATS_MSG_LEN_P3, /* u32 */
172+ TIPC_NLA_STATS_MSG_LEN_P4, /* u32 */
173+ TIPC_NLA_STATS_MSG_LEN_P5, /* u32 */
174+ TIPC_NLA_STATS_MSG_LEN_P6, /* u32 */
175+ TIPC_NLA_STATS_RX_STATES, /* u32 */
176+ TIPC_NLA_STATS_RX_PROBES, /* u32 */
177+ TIPC_NLA_STATS_RX_NACKS, /* u32 */
178+ TIPC_NLA_STATS_RX_DEFERRED, /* u32 */
179+ TIPC_NLA_STATS_TX_STATES, /* u32 */
180+ TIPC_NLA_STATS_TX_PROBES, /* u32 */
181+ TIPC_NLA_STATS_TX_NACKS, /* u32 */
182+ TIPC_NLA_STATS_TX_ACKS, /* u32 */
183+ TIPC_NLA_STATS_RETRANSMITTED, /* u32 */
184+ TIPC_NLA_STATS_DUPLICATES, /* u32 */
185+ TIPC_NLA_STATS_LINK_CONGS, /* u32 */
186+ TIPC_NLA_STATS_MAX_QUEUE, /* u32 */
187+ TIPC_NLA_STATS_AVG_QUEUE, /* u32 */
188+
189+ __TIPC_NLA_STATS_MAX,
190+ TIPC_NLA_STATS_MAX = __TIPC_NLA_STATS_MAX - 1
191+};
192+
131193 #endif