[BUG] XFRM IS NOT UPDATING ETH TYPE FIELD FOR INNER PACKET ON ETH HEADER

From: Eduardo Panisset <hidden>
Date: 2010-03-23 13:22:48

Hi,

Before doing this change wireshark was showing the inner packet as
"malformed" as it uses the ethernet's type field to classify the L3
packets as IPv6, IPv4 and so on.
The problem is when the inner packet is reinserted into Linux stack
and the ethernet header keeps holding on its type field a value for
the protocol of outer packet.

Below my correction on file net/xfrm/xfrm_input.c, function xfrm_prepare_input:

...

skb->protocol = inner_mode->afinfo->eth_proto; // existing code
eth_hdr(skb)->h_proto = skb->protocol; // my change, adding this line

...

Regards,
Eduardo Panisset.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help