On Tue, Aug 14, 2001 at 11:00:40AM -0400, Robert Watson wrote:
> 
> Well, the BPF code relies on the ifnet pointer being set or not to
> determine if a packet is "locally sourced".  This permits userland
> programs to differentiate packets targeted at a local ethernet address but
> remotely sourced (i.e., looped back) when bridging.  "locally sourced"
> becomes sort of fuzzy in the face of a variety of less traditional packet
> sources, but is useful.  I'd prefer it if non-local packets always had an
> ifnet defined--could you describe the circumstances where that is not the
> case in a little more detail? 

In our case, packets arrive via gif IP-over-IP tunnels, get processed a
bit and then sent up an ng_socket into userland.  In userland, they are
routed through a simulated network which may lose them, delay them
significantly, modify them, or generate new packets from them or in
response to them.  Any packets that leave the simulation go back down
the socket and are pushed onto the IP layer.  At this point the kernel
panics because there is no rcvif on the mbuf.  There's also no really
sane way to choose one because some of the packets are created in the
simulation.

-- Brooks

PGP signature

Reply via email to