David Young
2011-03-11 03:20:31 UTC
The network protocols and some drivers use ioctls to manipulate
ifnet flags, to add/delete multicast addresses, and to initialize
ifaddrs. I'd like to stop that before I tackle some problems with
ioctl synchronization. The first step is to replace calls to
ifp->if_ioctl(SIOCINITIFADDR|SIOCSIFFLAGS|SIOCADDMULTI|SIOSDELMULTI)
with calls to some new routines, if_flags_set(), if_mcast_op(), and
if_addr_init(). The new routines either call driver-provided routines
or fall back to if_ioctl. See the attached patch.
This patch isn't ready to commit, but please let me know if you have
any objections to the general approach before I continue.
Notice that I have provisionally deleted SIOCSIFDSTADDR cases from a lot
of drivers, because we can ordinarily rely on SIOCINITIFADDR to do the
same checks that SIOCSIFDSTADDR will do.
Dave
ifnet flags, to add/delete multicast addresses, and to initialize
ifaddrs. I'd like to stop that before I tackle some problems with
ioctl synchronization. The first step is to replace calls to
ifp->if_ioctl(SIOCINITIFADDR|SIOCSIFFLAGS|SIOCADDMULTI|SIOSDELMULTI)
with calls to some new routines, if_flags_set(), if_mcast_op(), and
if_addr_init(). The new routines either call driver-provided routines
or fall back to if_ioctl. See the attached patch.
This patch isn't ready to commit, but please let me know if you have
any objections to the general approach before I continue.
Notice that I have provisionally deleted SIOCSIFDSTADDR cases from a lot
of drivers, because we can ordinarily rely on SIOCINITIFADDR to do the
same checks that SIOCSIFDSTADDR will do.
Dave
--
David Young OJC Technologies
***@ojctech.com Urbana, IL * (217) 344-0444 x24
David Young OJC Technologies
***@ojctech.com Urbana, IL * (217) 344-0444 x24