summaryrefslogtreecommitdiffstats
path: root/sys/net/if.c
diff options
context:
space:
mode:
authorjlemon <jlemon@FreeBSD.org>2001-09-18 17:41:42 +0000
committerjlemon <jlemon@FreeBSD.org>2001-09-18 17:41:42 +0000
commit131e3ad4ce7736c260d62c4f5f2ff41a46dc7de0 (patch)
treef389fec466bb5c5593d80daaaa547ab750789d27 /sys/net/if.c
parent7f8575ebc78b1e80189dc231cb0aae8db7ddf1ea (diff)
downloadFreeBSD-src-131e3ad4ce7736c260d62c4f5f2ff41a46dc7de0.zip
FreeBSD-src-131e3ad4ce7736c260d62c4f5f2ff41a46dc7de0.tar.gz
Add two fields to the ifnet structure indicating what extra capabilities
a network device has, and which ones are enabled.
Diffstat (limited to 'sys/net/if.c')
-rw-r--r--sys/net/if.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/net/if.c b/sys/net/if.c
index c08d494..edc7303 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -994,6 +994,11 @@ ifioctl(so, cmd, data, td)
ifr->ifr_flags = ifp->if_flags;
break;
+ case SIOCGIFCAP:
+ ifr->ifr_reqcap = ifp->if_capabilities;
+ ifr->ifr_curcap = ifp->if_capenable;
+ break;
+
case SIOCGIFMETRIC:
ifr->ifr_metric = ifp->if_metric;
break;
@@ -1031,6 +1036,15 @@ ifioctl(so, cmd, data, td)
getmicrotime(&ifp->if_lastchange);
break;
+ case SIOCSIFCAP:
+ error = suser_td(td);
+ if (error)
+ return (error);
+ if (ifr->ifr_reqcap & ~ifp->if_capabilities)
+ return (EINVAL);
+ (void) (*ifp->if_ioctl)(ifp, cmd, data);
+ break;
+
case SIOCSIFMETRIC:
error = suser_td(td);
if (error)
OpenPOWER on IntegriCloud