Hello! > + if (skb->dev->hard_header) { > + int len = skb->dev->hard_header_len; > + skb->mac.raw = > + memmove(skb->data - len, skb->mac.raw, len); > + } What does make you think that we have this space above skb->data? Also, length of mac header is not dev->hard_header_len, it is skb->nh.raw - skb->mac.raw on entry to IP. If you want make this right you have to copy this area at each transformation. Alexey - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html