Incoming CLIP packets:
poll_rx();
   rx_vcc();
      ENI_VCC(vcc)->rx(vcc)      /* rx_aal5(); */
      skb = vcc->peek();         /* atm_peek_clip "net/atm/ipcommon.c" */
      do_rx_dma(); 
         skb_queue_tail(&eni_dev->rx_queue, skb);


eni_int();                 /* "eni.c" */
   dequeue_rx();
      vcc->push();         /* atm_push_clip "clip.c" */
         ipcom_push();     /* "net/atm/ipcommon.h" */

This is were skb->protocol is set. Originally, only protocol supported
was IPv6.

            netif_rx(skb); /* into IP code "net/core/dev.c" */

Then packet is queued on backlog and NET_BH is marked.

net_bh();

Outgoing CLIP packets:
clip_xmit();               /* "clip.c" */
   ipcom_xmit();	   /* "net/atm/ipcommon.h" */

If LLC encapsulation is used (rfc1483), this is were eth. protocol type
is set. Formerly, IP was the only protocol. A dirty hack now also allows
IPv6...
