mirror of
https://github.com/systemd/systemd.git
synced 2025-03-14 04:58:28 +03:00
networkctl: add support to display Transmit/Recieve queue length (#12633)
```
(networkctl)⚡ % build/networkctl status veth-test
● 13: veth-test
Link File: /usr/lib/systemd/network/99-default.link
Network File: /usr/lib/systemd/network/veth0.network
Type: ether
State: routable (configured)
Driver: veth
HW Address: 8a:a6:1c:3f:a6:1a
MTU: 1500
Minimum MTU: 68
Maximum MTU: 65535
Transmit Queue Length: 1
Receive Queue Length: 1
Address: 192.168.5.31
fe80::88a6:1cff:fe3f:a61a
Gateway: 192.168.5.1
DNS: 192.168.5.1
NTP: 192.168.5.1
Time Zone: Asia/Kolkata
Connected To: Zeus on port peer-test
```
This commit is contained in:
parent
b2774a3ae6
commit
0307afc681
@ -103,11 +103,15 @@ typedef struct LinkInfo {
|
||||
uint32_t mtu;
|
||||
uint32_t min_mtu;
|
||||
uint32_t max_mtu;
|
||||
uint32_t tx_queues;
|
||||
uint32_t rx_queues;
|
||||
|
||||
bool has_mac_address:1;
|
||||
bool has_mtu:1;
|
||||
bool has_min_mtu:1;
|
||||
bool has_max_mtu:1;
|
||||
bool has_tx_queues:1;
|
||||
bool has_rx_queues:1;
|
||||
} LinkInfo;
|
||||
|
||||
static int link_info_compare(const LinkInfo *a, const LinkInfo *b) {
|
||||
@ -169,6 +173,14 @@ static int decode_link(sd_netlink_message *m, LinkInfo *info, char **patterns) {
|
||||
sd_netlink_message_read_u32(m, IFLA_MAX_MTU, &info->max_mtu) >= 0 &&
|
||||
info->min_mtu > 0;
|
||||
|
||||
info->has_rx_queues =
|
||||
sd_netlink_message_read_u32(m, IFLA_NUM_RX_QUEUES, &info->rx_queues) >= 0 &&
|
||||
info->rx_queues > 0;
|
||||
|
||||
info->has_tx_queues =
|
||||
sd_netlink_message_read_u32(m, IFLA_NUM_TX_QUEUES, &info->tx_queues) >= 0 &&
|
||||
info->tx_queues > 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -758,10 +770,10 @@ static int link_status_one(
|
||||
|
||||
printf("%s%s%s %i: %s\n", on_color_operational, special_glyph(SPECIAL_GLYPH_BLACK_CIRCLE), off_color_operational, info->ifindex, info->name);
|
||||
|
||||
printf(" Link File: %s\n"
|
||||
" Network File: %s\n"
|
||||
" Type: %s\n"
|
||||
" State: %s%s%s (%s%s%s)\n",
|
||||
printf(" Link File: %s\n"
|
||||
" Network File: %s\n"
|
||||
" Type: %s\n"
|
||||
" State: %s%s%s (%s%s%s)\n",
|
||||
strna(link),
|
||||
strna(network),
|
||||
strna(t),
|
||||
@ -769,13 +781,13 @@ static int link_status_one(
|
||||
on_color_setup, strna(setup_state), off_color_setup);
|
||||
|
||||
if (path)
|
||||
printf(" Path: %s\n", path);
|
||||
printf(" Path: %s\n", path);
|
||||
if (driver)
|
||||
printf(" Driver: %s\n", driver);
|
||||
printf(" Driver: %s\n", driver);
|
||||
if (vendor)
|
||||
printf(" Vendor: %s\n", vendor);
|
||||
printf(" Vendor: %s\n", vendor);
|
||||
if (model)
|
||||
printf(" Model: %s\n", model);
|
||||
printf(" Model: %s\n", model);
|
||||
|
||||
if (info->has_mac_address) {
|
||||
_cleanup_free_ char *description = NULL;
|
||||
@ -784,35 +796,40 @@ static int link_status_one(
|
||||
(void) ieee_oui(hwdb, &info->mac_address, &description);
|
||||
|
||||
if (description)
|
||||
printf(" HW Address: %s (%s)\n", ether_addr_to_string(&info->mac_address, ea), description);
|
||||
printf(" HW Address: %s (%s)\n", ether_addr_to_string(&info->mac_address, ea), description);
|
||||
else
|
||||
printf(" HW Address: %s\n", ether_addr_to_string(&info->mac_address, ea));
|
||||
printf(" HW Address: %s\n", ether_addr_to_string(&info->mac_address, ea));
|
||||
}
|
||||
|
||||
if (info->has_mtu)
|
||||
printf(" MTU: %" PRIu32 "\n", info->mtu);
|
||||
printf(" MTU: %" PRIu32 "\n", info->mtu);
|
||||
if (info->has_min_mtu)
|
||||
printf(" Minimum MTU: %" PRIu32 "\n", info->min_mtu);
|
||||
printf(" Minimum MTU: %" PRIu32 "\n", info->min_mtu);
|
||||
if (info->has_max_mtu)
|
||||
printf(" Maximum MTU: %" PRIu32 "\n", info->max_mtu);
|
||||
printf(" Maximum MTU: %" PRIu32 "\n", info->max_mtu);
|
||||
|
||||
(void) dump_addresses(rtnl, " Address: ", info->ifindex);
|
||||
(void) dump_gateways(rtnl, hwdb, " Gateway: ", info->ifindex);
|
||||
if (info->has_tx_queues)
|
||||
printf("Transmit Queue Length: %" PRIu32 "\n", info->tx_queues);
|
||||
if (info->has_rx_queues)
|
||||
printf(" Receive Queue Length: %" PRIu32 "\n", info->rx_queues);
|
||||
|
||||
dump_list(" DNS: ", dns);
|
||||
dump_list(" Search Domains: ", search_domains);
|
||||
dump_list(" Route Domains: ", route_domains);
|
||||
(void) dump_addresses(rtnl, " Address: ", info->ifindex);
|
||||
(void) dump_gateways(rtnl, hwdb, " Gateway: ", info->ifindex);
|
||||
|
||||
dump_list(" NTP: ", ntp);
|
||||
dump_list(" DNS: ", dns);
|
||||
dump_list(" Search Domains: ", search_domains);
|
||||
dump_list(" Route Domains: ", route_domains);
|
||||
|
||||
dump_list(" NTP: ", ntp);
|
||||
|
||||
dump_ifindexes("Carrier Bound To: ", carrier_bound_to);
|
||||
dump_ifindexes("Carrier Bound By: ", carrier_bound_by);
|
||||
|
||||
(void) sd_network_link_get_timezone(info->ifindex, &tz);
|
||||
if (tz)
|
||||
printf(" Time Zone: %s\n", tz);
|
||||
printf(" Time Zone: %s\n", tz);
|
||||
|
||||
(void) dump_lldp_neighbors(" Connected To: ", info->ifindex);
|
||||
(void) dump_lldp_neighbors(" Connected To: ", info->ifindex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user