Added ioctl support for SIOCSIFMTU.
This commit is contained in:
parent
660255695f
commit
90fd8c3866
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=1944
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user