Subject: Re: IPv6 capable tun
To: None <tech-net@netbsd.org>
From: Michael Richardson <mcr@sandelman.ottawa.on.ca>
List: tech-net
Date: 01/08/2001 09:17:32
>>>>> "itojun" == itojun  <itojun@iijlab.net> writes:
    >> I understand that one reason why tun0 does not support IPv6 is that
    >> it does not support multicast. I can live without neighbour discovery
    >> messages and stuff, and I think I have the right code otherwise.
    >> Are there other downsides of setting IF_MULTICAST on the tun interface?
    >> I've sent a PR on this. 

    itojun> 	what did you do about TUN_PREPADDR (TUNSLMODE)?

  On ingress (data written to tun0), one prepends a sockaddr of some kind. The
only use of this is to determine the addressing family (e.g. which queue to
use). I extended the switch statement to look for AF_INET6. If you aren't
in TUNSLMODE, then I peek at the first bype to see of it is 0x4x or 0x6x.

  On egress, the destination address is again a sockaddr, so it does the
right thing. I haven't tested with TUNSLMODE yet. I should probably be using
it for my protocol.

  The situation that I don't know how to deal with is the BPF case.

] Train travel features AC outlets with no take-off restrictions|gigabit is no[
]   Michael Richardson, Solidum Systems   Oh where, oh where has|problem  with[
]     mcr@solidum.com   www.solidum.com   the little fishy gone?|PAX.port 1100[
] panic("Just another NetBSD/notebook using, kernel hacking, security guy");  [