From d197ca9967b039fe1a63640f75abb0a3935d66fd Mon Sep 17 00:00:00 2001 From: wangchen Date: Thu, 27 Apr 2023 10:17:53 +0800 Subject: [PATCH] net/procfs: Support to show MTU in netdev statistics Usage: ifconfig (interfacename) example: ifconfig eth0 eth0 Link encap:Ethernet HWaddr 42:d3:59:ad:5a:2f at RUNNING mtu 1500 inet addr:10.0.1.2 DRaddr:10.0.1.1 Mask:255.255.255.0 inet6 addr: fe80::40d3:59ff:fead:5a2f/64 inet6 DRaddr: ::/64 Signed-off-by: wangchen --- net/netdev/netdev_ioctl.c | 4 ++-- net/procfs/netdev_statistics.c | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/net/netdev/netdev_ioctl.c b/net/netdev/netdev_ioctl.c index 92aae1b3b1..6d19058fd4 100644 --- a/net/netdev/netdev_ioctl.c +++ b/net/netdev/netdev_ioctl.c @@ -920,13 +920,13 @@ static int netdev_ifr_ioctl(FAR struct socket *psock, int cmd, case SIOCGLIFMTU: /* Get MTU size */ case SIOCGIFMTU: /* Get MTU size */ - req->ifr_mtu = NETDEV_PKTSIZE(dev); + req->ifr_mtu = NETDEV_PKTSIZE(dev) - dev->d_llhdrlen; break; case SIOCSIFMTU: /* Set MTU size */ dev = netdev_ifr_dev(req); if (dev) { - NETDEV_PKTSIZE(dev) = req->ifr_mtu; + NETDEV_PKTSIZE(dev) = req->ifr_mtu + dev->d_llhdrlen; } break; diff --git a/net/procfs/netdev_statistics.c b/net/procfs/netdev_statistics.c index 124d7e7da2..fdc6ea5ab8 100644 --- a/net/procfs/netdev_statistics.c +++ b/net/procfs/netdev_statistics.c @@ -248,7 +248,10 @@ static int netprocfs_linklayer(FAR struct netprocfs_file_s *netfile) } len += snprintf(&netfile->line[len], NET_LINELEN - len, - " at %s\n", status); + " at %s", status); + + len += snprintf(&netfile->line[len], NET_LINELEN - len, + " mtu %d\n", (dev->d_pktsize - dev->d_llhdrlen)); return len; }