Subject: Re: [PATCH net-next 2/2] bonding: support QinQ for bond arp interval

From: Ding Tianhong <[email-masked]>
Date: Thu, 20 Mar 2014 17:29:39 +0800

On 2014/3/20 16:24, Michal Kubecek wrote:
> On Mon, Mar 17, 2014 at 10:46:04AM -0700, Jay Vosburgh wrote:
>> Ding Tianhong <[email-masked]> wrote:
>>>
>>> ip link add link bond0  bond0.20 type vlan proto 802.1ad id 20
>>> ip link add link bond0.20  bond0.20.200 type vlan proto 802.1q id 200
>>
>> 	Is this nesting backwards?  The way I read it (and the way I
>> recall that VLANs nest), "bond0.20" is the "regular" VLAN, i.e., if we
>> just have bond0.20 it would be a standard 802.1q (ethertype 0x8100)
>> VLAN.  Adding the second VLAN, .200 in this example, would be the second
>> (outer) tag, and would be the 802.1ad (ethertype 0x88a8) tag.
>>
>> 	In other words, adding a VLAN to an already existing VLAN makes
>> the newly added VLAN the "outer" and the already existing VLAN the
>> "inner."  Am I confused?
> 
> I don't think so. My understanding is that when sending a packet to
> a vlan device, it is tagged (according to its "proto") and passed to its
> underlying device.
> 
> So in the case above, sending a packet to bond0.20.200 would add an
> 802.1q tag and pass the result to bond0.20 which would add an 802.1ad
> tag and pass the result to bond0. Which is the way it should work.
> 
>                                                        Michal Kubecek

Hi Michal:

I agree with your analysis of QinQ for vlan in common usage, but I think you miss
something for how the arp interval works, the bonding need to create a new
arp request with vlan tag to confirm that the slave should be active or unactive,  
the skb could not be passed to bond0.20.200, we have to build QinQ skb ourselves.

Ding

> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [email-masked]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
>