when one of the atm drivers has a skb ready to pass up to the higher
layers it may (optionally?) fill in skb->cb. this usually just holds
a pointer to the atm_vcc that the skb arrived on. if this skb is
destined for an atm socket, all is well. the trouble arises when the skb
is bound for the ip layer via lec or clip. lec or clip just push
the skb up to the ip layer via netif_rx(). sometimes (particularly true
on 64-bit platforms) the ip layer will interpret the skb->cb (for ip
the first 4 bytes of skb->cb are the next hop address which isnt used
much apparently).
its my understanding is that you can't use skb->cb unless you created
the skb. well atm created the skb and filled in ->cb. it seems ip
doesn't know its sharing this skb with the atm layer and doesnt clone
the skb in ip_rcv(). there seems to be an implicit understanding that
skb's created by ethernet drivers are 'owned' by the ip layer and shouldnt
touch skb->cb.
i would hazard that the atm drivers are not 'owned' by the ip layer --
any skb's that lec or clip send to the ip layer should first cloned and
the clone passed to the ip layer?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sun Feb 23 2003 - 22:00:32 EST