summaryrefslogtreecommitdiff
path: root/sys/net
diff options
context:
space:
mode:
authorDavid Greenman <dg@FreeBSD.org>1997-09-30 12:29:00 +0000
committerDavid Greenman <dg@FreeBSD.org>1997-09-30 12:29:00 +0000
commit8e609311ba3c750470fb665dcc2f67c036c97e7f (patch)
tree935dc2d8aae73db406dca3624325e5f67a85f264 /sys/net
parent4254a8549e2908b20afd18fcb2e49363682fbb1b (diff)
Notes
Diffstat (limited to 'sys/net')
-rw-r--r--sys/net/if.h4
-rw-r--r--sys/net/if_ethersubr.c18
2 files changed, 17 insertions, 5 deletions
diff --git a/sys/net/if.h b/sys/net/if.h
index 0359ab187be9..2cf3d7389afb 100644
--- a/sys/net/if.h
+++ b/sys/net/if.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)if.h 8.1 (Berkeley) 6/10/93
- * $Id: if.h,v 1.36 1996/10/21 23:05:57 fenner Exp $
+ * $Id: if.h,v 1.36.2.1 1997/06/30 10:59:15 peter Exp $
*/
#ifndef _NET_IF_H_
@@ -429,7 +429,7 @@ void ether_ifattach __P((struct ifnet *));
void ether_input __P((struct ifnet *, struct ether_header *, struct mbuf *));
int ether_output __P((struct ifnet *,
struct mbuf *, struct sockaddr *, struct rtentry *));
-void ether_ioctl __P((struct ifnet *, int , caddr_t ));
+int ether_ioctl __P((struct ifnet *, int , caddr_t ));
void if_attach __P((struct ifnet *));
void if_down __P((struct ifnet *));
diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c
index 42d2f1d7f5d6..4c721b24e781 100644
--- a/sys/net/if_ethersubr.c
+++ b/sys/net/if_ethersubr.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)if_ethersubr.c 8.1 (Berkeley) 6/10/93
- * $Id: if_ethersubr.c,v 1.26.2.1 1996/11/21 16:43:55 phk Exp $
+ * $Id: if_ethersubr.c,v 1.26.2.2 1997/06/28 09:22:07 jhay Exp $
*/
#include <sys/param.h>
@@ -856,11 +856,12 @@ ether_delmulti(ifr, ac)
SYSCTL_NODE(_net_link, IFT_ETHER, ether, CTLFLAG_RW, 0, "Ethernet");
-void
+int
ether_ioctl(struct ifnet *ifp, int command, caddr_t data)
{
struct ifaddr *ifa = (struct ifaddr *) data;
struct ifreq *ifr = (struct ifreq *) data;
+ int error = 0;
switch (command) {
case SIOCSIFADDR:
@@ -939,6 +940,17 @@ ether_ioctl(struct ifnet *ifp, int command, caddr_t data)
(caddr_t) sa->sa_data, ETHER_ADDR_LEN);
}
break;
+
+ case SIOCSIFMTU:
+ /*
+ * Set the interface MTU.
+ */
+ if (ifr->ifr_mtu > ETHERMTU) {
+ error = EINVAL;
+ } else {
+ ifp->if_mtu = ifr->ifr_mtu;
+ }
+ break;
}
- return;
+ return (error);
}