Re: [PATCH net-next] generalize VXLAN forwarding tables
From: David Stevens <hidden>
Date: 2013-02-28 22:57:45
netdev-owner@vger.kernel.org wrote on 02/28/2013 05:27:55 PM:
From: Eric Dumazet <redacted>
On Thu, 2013-02-28 at 14:23 -0500, David L Stevens wrote:quoted
+ /* if there are multiple destinations, send copies */ + for (rdst = rdst0->remote_next; rdst; rdst = rdst->remote_next) { + struct sk_buff *skb1; + + skb1 = skb_clone(skb, GFP_ATOMIC); + rc1 = vxlan_xmit_one(skb1, dev, rdst, did_rsc); + if (rc == NETDEV_TX_OK) + rc = rc1; + } + + rc1 = vxlan_xmit_one(skb, dev, rdst0, did_rsc); + if (rc == NETDEV_TX_OK) + rc = rc1; + return rc; +}It looks like vxlan_xmit_one() will overwrite header So skb_clone() is probably not what you wanted ?
We're only prepending encapsulation headers, and we
do skb_cow_head() for each of those in vxlan_xmit_one().
This skb should be just the original , unencapsulated
packet which is identical in all copies.
+-DLS