Thread (20 messages) 20 messages, 3 authors, 2009-11-24

Re: [PATCH 1/4] veth: move loopback logic to common location

From: Arnd Bergmann <arnd@arndb.de>
Date: 2009-11-24 10:34:58
Also in: bridge, lkml

On Tuesday 24 November 2009 10:17:11 Patrick McHardy wrote:
Arnd Bergmann wrote:
quoted
On Tuesday 24 November 2009 09:51:19 Patrick McHardy wrote:
quoted
quoted
+     skb_dst_drop(skb);
+     skb->tstamp.tv64 = 0;
+     skb->pkt_type = PACKET_HOST;
+     skb->protocol = eth_type_trans(skb, dev);
+     skb->mark = 0;
skb->mark clearing should stay private to veth since its usually
supposed to stay intact. The only exception is packets crossing
namespaces, where they should appear like a freshly received skbs.
But isn't that what we want in macvlan as well when we're
forwarding from one downstream interface to another?
In the TX direction you can use the mark for TC classification
on the underlying device.
I don't use dev_forward_skb for the case where the data is sent
to the underlying device, so the TC classification should stay
intact.
 
quoted
I did all my testing with macvlan interfaces in separate namespaces
communicating with each other, so I'd assume that we should always
clear skb->mark and skb->dst in this function.
Good point, in that case we probably should clear it as well. But
in the non-namespace case the TC classification currently works and
this is consistent with any other virtual device driver, so it
should continue to work.
Do you think we should be able to use TC to direct traffic between
macvlans on the same underlying device in bridge mode? It does sound
useful, but I'm not sure how to implement that or if you'd expect
it to work with the current code. If we support that, it should probably
also work with namespaces, by consuming the mark in the macvlan
and veth drivers.

	Arnd <><
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help