tipc: set skb->protocol in eth_media packet transmission
authorPatrick McHardy <kaber@trash.net>
Wed, 17 Apr 2013 06:18:27 +0000 (06:18 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 17 Apr 2013 18:18:33 +0000 (14:18 -0400)
The skb->protocol field is used by packet classifiers and for AF_PACKET
cooked format, TIPC needs to set it properly.

Fixes packet classification and ethertype of 0x0000 in cooked captures:

Out 20:c9:d0:43:12:d9 ethertype Unknown (0x0000), length 56:
0x0000:  5b50 0028 0000 30d4 0100 1000 0100 1001  [P.(..0.........
0x0010:  0000 03e8 0000 0001 20c9 d043 12d9 0000  ...........C....
0x0020:  0000 0000 0000 0000                      ........

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/eth_media.c

index 0648819..120a676 100644 (file)
@@ -111,6 +111,7 @@ static int send_msg(struct sk_buff *buf, struct tipc_bearer *tb_ptr,
 
        skb_reset_network_header(clone);
        clone->dev = dev;
+       clone->protocol = htons(ETH_P_TIPC);
        dev_hard_header(clone, dev, ETH_P_TIPC, dest->value,
                        dev->dev_addr, clone->len);
        dev_queue_xmit(clone);