diff options
author | jlemon <jlemon@FreeBSD.org> | 2001-09-18 17:41:42 +0000 |
---|---|---|
committer | jlemon <jlemon@FreeBSD.org> | 2001-09-18 17:41:42 +0000 |
commit | 131e3ad4ce7736c260d62c4f5f2ff41a46dc7de0 (patch) | |
tree | f389fec466bb5c5593d80daaaa547ab750789d27 /sys/net/if.c | |
parent | 7f8575ebc78b1e80189dc231cb0aae8db7ddf1ea (diff) | |
download | FreeBSD-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.c | 14 |
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) |