bug-hurd
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]