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
Showing the changes to include/uapi/linux (1 of 6 files). Show all
Unified · Split
| @@ -47,6 +47,7 @@ enum { · 46 unmodified lines | ||
| 47 | 47 | TIPC_NL_BEARER_SET, |
| 48 | 48 | TIPC_NL_SOCK_GET, |
| 49 | 49 | TIPC_NL_PUBL_GET, |
| 50 | + TIPC_NL_LINK_GET, | |
| 50 | 51 | |
| 51 | 52 | __TIPC_NL_CMD_MAX, |
| 52 | 53 | TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1 |
| @@ -58,6 +59,7 @@ enum { · 5 unmodified lines | ||
| 58 | 59 | TIPC_NLA_BEARER, /* nest */ |
| 59 | 60 | TIPC_NLA_SOCK, /* nest */ |
| 60 | 61 | TIPC_NLA_PUBL, /* nest */ |
| 62 | + TIPC_NLA_LINK, /* nest */ | |
| 61 | 63 | |
| 62 | 64 | __TIPC_NLA_MAX, |
| 63 | 65 | TIPC_NLA_MAX = __TIPC_NLA_MAX - 1 |
| @@ -86,6 +88,24 @@ enum { · 22 unmodified lines | ||
| 86 | 88 | TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1 |
| 87 | 89 | }; |
| 88 | 90 | |
| 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 | + | |
| 89 | 109 | /* Publication info */ |
| 90 | 110 | enum { |
| 91 | 111 | TIPC_NLA_PUBL_UNSPEC, |
| @@ -128,4 +148,46 @@ enum { · 36 unmodified lines | ||
| 128 | 148 | TIPC_NLA_PROP_MAX = __TIPC_NLA_PROP_MAX - 1 |
| 129 | 149 | }; |
| 130 | 150 | |
| 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 | + | |
| 131 | 193 | #endif |