Re: dhclient dependency on bpf ?

2009-10-23 Thread Alex
probably because it needs to get packets that are directed to
broadcast and not your machine.
Just take a look at the source code.


Sincerely,
Alex Hornung


Re: dhclient dependency on bpf ?

2009-10-23 Thread Jeremy C. Reed
On Fri, 23 Oct 2009, Saifi Khan wrote:

 Offcourse, i enabled 'bpf' and i'm keen to know what is the
 reason for 'bpf' dependency ?

Please see

http://ftp.isc.org/www/dhcp/doc/References.html#anchor3
Search for Berkeley Packet Filter and BPF and read thaty paragraph.

(It should be included in every ISC DHCP distribution as 
doc/References.html.)

I don't know what the equivalent replacement for BPF (or if there is) 
for DragonFly.


Re: dhclient dependency on bpf ?

2009-10-23 Thread Saifi Khan
On Fri, 23 Oct 2009, Jeremy C. Reed wrote:

 On Fri, 23 Oct 2009, Saifi Khan wrote:
 
  Offcourse, i enabled 'bpf' and i'm keen to know what is the
  reason for 'bpf' dependency ?
 
 Please see
 
 http://ftp.isc.org/www/dhcp/doc/References.html#anchor3
 Search for Berkeley Packet Filter and BPF and read thaty paragraph.
 
 (It should be included in every ISC DHCP distribution as 
 doc/References.html.)
 
 I don't know what the equivalent replacement for BPF (or if there is) 
 for DragonFly.
 

Jeremy, thank you for sharing the excellent link.

The documentation says,
...
dhclient needs the BPF pseudo-device to program a filter, that
brings in only the DHCP packets.
...


thanks
Saifi.



Re: dhclient dependency on bpf ?

2009-10-23 Thread Saifi Khan
On Fri, 23 Oct 2009, Alex wrote:

 probably because it needs to get packets that are directed to
 broadcast and not your machine.
 Just take a look at the source code.
 
 
 Sincerely,
 Alex Hornung
 

Alex Hornung, thank you for the suggestion.

i looked at the code at sbin/dhclient and found the following sequence.


dhclient.cmain()

  |
  V

dispatch.cdispatch()

  |
  V
...
  if ((fds[0].revents  (POLLIN | POLLHUP))) {
  if (ifi-linkstat  ifi  ifi-rfdesc != -1)

  |
  V

dispatch.cgot_one()

  |
  V

bpf.c receive_packet()


i'm a newbie and i hope i got this right.

Though i'm still on the lookout for the code fragment that
specifies the 'DHCP filter' expression.


thanks
Saifi.