What initialization is required to be able to read from a tun or tap device after one is opened...

I have a program where I open the tun driver. After that I can:

- see tun0 if I run ifconfig
- change ip addresses etc on tun0

I turned on the tun/tap debug messages and I get a message when I set ifconfig tun0 promisc

What do I need to do to be able to use this device?