Added ioctl support for SIOCSIFMTU.

This commit is contained in:
David Greenman 1994-08-08 12:09:04 +00:00
parent 660255695f
commit 90fd8c3866
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=1944
3 changed files with 36 additions and 9 deletions

View File

@ -13,7 +13,7 @@
* the SMC Elite Ultra (8216), the 3Com 3c503, the NE1000 and NE2000,
* and a variety of similar clones.
*
* $Id: if_ed.c,v 1.39 1994/08/02 07:39:28 davidg Exp $
* $Id: if_ed.c,v 1.40 1994/08/04 17:42:33 davidg Exp $
*/
#include "ed.h"
@ -2127,8 +2127,8 @@ ed_ioctl(ifp, command, data)
* Update out multicast list.
*/
error = (command == SIOCADDMULTI) ?
ether_addmulti((struct ifreq *) data, &sc->arpcom) :
ether_delmulti((struct ifreq *) data, &sc->arpcom);
ether_addmulti(ifr, &sc->arpcom) :
ether_delmulti((ifr, &sc->arpcom);
if (error == ENETRESET) {
@ -2141,6 +2141,18 @@ ed_ioctl(ifp, command, data)
}
break;
#endif
case SIOCSIFMTU:
/*
* Set the interface MTU.
*/
if (ifr->ifr_mtu > ETHERMTU) {
error = EINVAL;
} else {
ifp->if_mtu = ifr->ifr_mtu;
}
break;
default:
error = EINVAL;
}

View File

@ -13,7 +13,7 @@
* the SMC Elite Ultra (8216), the 3Com 3c503, the NE1000 and NE2000,
* and a variety of similar clones.
*
* $Id: if_ed.c,v 1.39 1994/08/02 07:39:28 davidg Exp $
* $Id: if_ed.c,v 1.40 1994/08/04 17:42:33 davidg Exp $
*/
#include "ed.h"
@ -2127,8 +2127,8 @@ ed_ioctl(ifp, command, data)
* Update out multicast list.
*/
error = (command == SIOCADDMULTI) ?
ether_addmulti((struct ifreq *) data, &sc->arpcom) :
ether_delmulti((struct ifreq *) data, &sc->arpcom);
ether_addmulti(ifr, &sc->arpcom) :
ether_delmulti((ifr, &sc->arpcom);
if (error == ENETRESET) {
@ -2141,6 +2141,18 @@ ed_ioctl(ifp, command, data)
}
break;
#endif
case SIOCSIFMTU:
/*
* Set the interface MTU.
*/
if (ifr->ifr_mtu > ETHERMTU) {
error = EINVAL;
} else {
ifp->if_mtu = ifr->ifr_mtu;
}
break;
default:
error = EINVAL;
}

View File

@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)if_loop.c 8.1 (Berkeley) 6/10/93
* $Id$
* $Id: if_loop.c,v 1.5 1994/08/02 07:46:17 davidg Exp $
*/
/*
@ -208,7 +208,7 @@ loioctl(ifp, cmd, data)
caddr_t data;
{
register struct ifaddr *ifa;
register struct ifreq *ifr;
register struct ifreq *ifr = (struct ifreq *)data;
register int error = 0;
switch (cmd) {
@ -225,7 +225,6 @@ loioctl(ifp, cmd, data)
case SIOCADDMULTI:
case SIOCDELMULTI:
ifr = (struct ifreq *)data;
if (ifr == 0) {
error = EAFNOSUPPORT; /* XXX */
break;
@ -243,6 +242,10 @@ loioctl(ifp, cmd, data)
}
break;
case SIOCSIFMTU:
ifp->if_mtu = ifr->ifr_mtu;
break;
default:
error = EINVAL;
}