Steven Stallion writes:
> I was afraid of that.
>
> I threw together a quick patch last night which simply diabled the
> command in ifconfig that sets a new destination address (which results
> in the POINTOPOINT flag being set on the interface); nothing fancy.
There are two potential problems here.
I consider the problem in ifconfig to be at worst a cosmetic problem,
and perhaps not even a problem at all: it allows the user to generate
an ioctl that by rights ought to fail. As a design matter, I don't
really see that as a problem worth fixing, unless it somehow doesn't
manage to handle the error returns correctly.
The other problem is the kernel. It's _allowing_ you to do something
that's clearly wrong. There's no getting around that one -- broadcast
type interfaces simply do not have a configured "destination address"
and can never have one. Allowing the ioctl to "succeed" -- and worse
yet corrupting the interface state as a result -- is a clear-cut bug.
Unfortunately, the open source pppd currently relies on this bug. We
need:
- A check in the kernel to allow SIOCS{,L}IFDSTADDR to succeed
if the interface is known to be IFF_POINTOPOINT.
- A gruesome hack in the kernel to detect actual point-to-
point interfaces that pretend to be a broken address-less
Ethernet.
- A *lot* of testing with software that may intersect with
this, including PPP (our own forked version and the open
source one), X.25, Xen, VirtualBox, and the various
StarMumble interconnects.
Longer term:
- A cool change to the kernel to allow DL_PPP (to heck with
The Open Group), and changes in our own pppd to match.
- Updates to snoop, libpcap, and wireshark to handle the new
DL_PPP. (Note that this puts us off the beam for RFC
compliance on the snoop file.)
- A contribution to the open source pppd to use DL_PPP when
available. Fortunately, I'm one of the maintainers.
> Either way, what is the best method to proceed? I submitted a bug last
> night with a category of networking / ifconfig (there is a reference to
> this thread in the description).
I don't think that's the right thing to fix. It'd break the ability
of ifconfig to manage PPP interfaces (which is possible with the
"plumbed" option), and it wouldn't address the fact that any _other_
application issuing this public ioctl could stumble into the same
problem.
--
James Carlson, Solaris Networking <[EMAIL PROTECTED]>
Sun Microsystems / 35 Network Drive 71.232W Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757 42.496N Fax +1 781 442 1677
_______________________________________________
networking-discuss mailing list
[email protected]