TUN/TAP driver with IPv6 - tun0 does not deliver info to user space
Hi,
I use an application that encapsulates IPv4 packets in an IPv4 tunnel using the TUN/TAP driver in Linux. There is a fancy protocol used between the 2 layers. This software works like a charm.
I have started modifying the source code in order to send IPv6 packets in an IPv4 tunnel. So far, the software seems to work fine but the information (packets) does not seem to make their way back to the user space.
I initiate an ICMPv6 packet with ping6. It gets in the tun0 interface. The software makes the IPv4 encapsulation and sends the information out of the system. The ICMPv6 echo reply comes back to the system with the corresponding encapsulation. The software removes the encapsulation and writes the packet in the tun0 interface. The ping6 application never receives ICMPv6 echo reply.
I have confirmed the integrity of the transaction using tcpdump on the tun0 interface. The interface comes up with the "inet 6 addr" only. The interface has the flags "UP POINTOPOINT RUNNING". The RX/TX counters are incrementing and no drops are observed at the interface level.
How can I troubleshoot this problem? There seems to be a lost link between the tun0 driver and the user space applications. The system uses SuSE Linux Enterprise 10 SP1. This is based on kernel 2.6.16. This is quite old.
Any help will be greatly appreciated!
Thanks,
Claude.
|