Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/net Fix to set mtu even if it is bigger than mru notifie...
details: https://anonhg.NetBSD.org/src/rev/4095ec6d03cf
branches: trunk
changeset: 378681:4095ec6d03cf
user: yamaguchi <yamaguchi%NetBSD.org@localhost>
date: Fri Apr 23 03:31:33 2021 +0000
description:
Fix to set mtu even if it is bigger than mru notified at LCP
diffstat:
sys/net/if_spppsubr.c | 25 +++++++++++++++++++++----
1 files changed, 21 insertions(+), 4 deletions(-)
diffs (49 lines):
diff -r 622d0e0ca322 -r 4095ec6d03cf sys/net/if_spppsubr.c
--- a/sys/net/if_spppsubr.c Fri Apr 23 03:07:19 2021 +0000
+++ b/sys/net/if_spppsubr.c Fri Apr 23 03:31:33 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_spppsubr.c,v 1.218 2021/04/23 01:13:25 yamaguchi Exp $ */
+/* $NetBSD: if_spppsubr.c,v 1.219 2021/04/23 03:31:33 yamaguchi Exp $ */
/*
* Synchronous PPP/Cisco link level subroutines.
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_spppsubr.c,v 1.218 2021/04/23 01:13:25 yamaguchi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_spppsubr.c,v 1.219 2021/04/23 03:31:33 yamaguchi Exp $");
#if defined(_KERNEL_OPT)
#include "opt_inet.h"
@@ -1212,11 +1212,28 @@ sppp_ioctl(struct ifnet *ifp, u_long cmd
case SIOCSIFMTU:
if (ifr->ifr_mtu < PPP_MINMRU ||
- ifr->ifr_mtu > sp->lcp.their_mru) {
+ ifr->ifr_mtu > PP_MTU) {
error = EINVAL;
break;
}
- /*FALLTHROUGH*/
+
+ error = ifioctl_common(ifp, cmd, data);
+ if (error == ENETRESET)
+ error = 0;
+
+ if (sp->lcp.their_mru > 0 &&
+ ifp->if_mtu > sp->lcp.their_mru) {
+ sp->pp_saved_mtu = ifp->if_mtu;
+ ifp->if_mtu = sp->lcp.their_mru;
+ if (ifp->if_flags & IFF_DEBUG) {
+ log(LOG_DEBUG,
+ "%s: setting MTU to "
+ "%"PRIu64" bytes\n",
+ ifp->if_xname, ifp->if_mtu);
+ }
+ }
+ break;
+
case SIOCGIFMTU:
if ((error = ifioctl_common(ifp, cmd, data)) == ENETRESET)
error = 0;
Home |
Main Index |
Thread Index |
Old Index