[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Two Questions
From: |
Marco Gerards |
Subject: |
Re: Two Questions |
Date: |
Thu, 23 Sep 2004 14:16:31 +0000 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux) |
Hisham Kotry <etsh_cucu@yahoo.com> writes:
> --- Marco Gerards <metgerards@student.han.nl> wrote:
>
>> "Alfred M. Szmidt" <ams@kemisten.nu> writes:
>>
>> > Q2 Have the networking issues regarding DHCP been resolved?
>> >
>> > No. Nobody is working on this.
>>
>> I worked on this. I just have to start hacking again. Perhaps when
>> I
>> am less busy with school and GRUB.
>>
>> What I did now is putting the netlink code of linux in pfinet. That
>> makes it possible to do stuff like setting up routes, etc. I just
>> have to test if it works and clean up my code.
>
> Adding netlink support to pfinet won't contribute much, iproute2 (the
> only major package afaik that uses netlink) is a bit too dependent on
> the linux kernel's header files, even where you to fix the dependencies
> and other minor issues, adding routes wont allow dhcp to work. As I
> previously told you[0], dhcp needs to forward packets with an address
> of INADDR_NONE wich can't happen unless the socket tells pfinet wich
> interface to use, ISC dhcp does that on linux-2.0[1] (even in the
> single interface case) using the SO_BINDTODEVICE sockopt, you need
> pfinet to process that option otherwise packets from sockets without a
> bound device will be dropped in ip_route_output_slow().
I just had a look at how this would works. Still I am not convinced
SO_BINDTODEVICE will solve this problem. AFAIK it just means that you
can specify which device is used for broadcasting. You will still
have to add a route to 0.0.0.0.
And pfinet is not able to change the from address to 0.0.0.0.
Actually, this is how this is fixed for linux 2.0 (from the dhcpcd
script):
if [ $relmajor -lt 2 ] || ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] )
then
ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \
broadcast 255.255.255.255 up
# Add route to make broadcast work. Do not omit netmask.
route add default dev $interface netmask 0.0.0.0
else
ifconfig $interface up
fi
IMHO it is the least work to modify pfinet like I did quite a while
ago. Just by adding a --dhcp option so it configures pfinet correctly
so it can be used by dhcpcd.
I agree this is an ugly hack, but I can make a patch for debian that
does exactly that. Assuming here the Hurd maintainers does not want
this in CVS until the new pfinet is finished.
Thanks,
Marco