Am 01.03.2011 21:04, schrieb Daniel Lezcano:
> On 03/01/2011 05:51 PM, Patrick McHardy wrote:
>>> Patrick, do you have any suggestions to fix this ?
>> Since the frames are only looped back locally, I suppose the easiest
>> fix would be to mark them with CHECKSUM_UNNECESSARY. Alternatively
>> we need to complete the checksum manually, similar to what
>> dev_hard_start_xmit() does.
>
> That sounds very simple to fix, maybe too much simple :)
>
> I did the following change:
>
> --- linux-next.orig/drivers/net/macvlan.c
> +++ linux-next/drivers/net/macvlan.c
> @@ -222,6 +222,7 @@ static int macvlan_queue_xmit(struct sk_
>
> if (vlan->mode == MACVLAN_MODE_BRIDGE) {
> const struct ethhdr *eth = (void *)skb->data;
> + skb->ip_summed = CHECKSUM_UNNECESSARY;
>
> /* send to other bridge ports directly */
> if (is_multicast_ether_addr(eth->h_dest)) {
>
>
> and that fixed the problem. Do you think it is acceptable ?
The only problem I see is if the packets are bridged to a
different networking device (or redirected using the mirred
action), in this case the checksum will not be completed.
This would be a very strange setup though and probably wouldn't
be using dummy as lower device, so I'm not sure we have to
worry about this case.
------------------------------------------------------------------------------
Free Software Download: Index, Search & Analyze Logs and other IT data in
Real-Time with Splunk. Collect, index and harness all the fast moving IT data
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business
insights. http://p.sf.net/sfu/splunk-dev2dev
_______________________________________________
Lxc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lxc-users