Re: [PATCH] 1/1 net: packet: Keep 802.1Q VLAN tag in packet on SOCK_DGRAMsocket - resend

From: Patrick McHardy
Date: Mon Jan 04 2010 - 11:30:15 EST


Milan Dadok wrote:
> Patrick McHardy wrote:
>
>> Milan Dadok wrote:
>>> Keep 802.1Q VLAN tag on non HW vlan accelerated network card received to SOCK_DGRAM socket.
>
>> So not including the link layer header for SOCK_DGRAM sockets
>> seems to be the intended behaviour.
>
>>From my point of view i have question
> Is 802.1Q encapsulation (or another type of encapsulation (IPSec?)) part of link level header or part of data packet?
>
> Currently pseudo-header contains for OUTGOING packet on physical card (vlan10@eth1)
> a) HW accelarated network card
> protocol = ethertype IPv4 (0x0800)
> tci = vlan number = 10
> and data starts with 4500 0028
>
> b) non HW accelerated network card
> protocol = ethertype 802.1Q (0x8100)
> tci = 0
> and data starts with 4500 0028
> vlan tci and real protocol number (ARP,IPV4,IPV6) of data is lost

As mentioned in the text I quoted, this is apparently what is
intended for SOCK_DGRAM packet sockets. The accelerated case is
inconsistent and vlan_tci should be cleared I guess.

I agree that sll_protocol should reflect the network protocol
in this case however.

> And with more nested vlans it is getting worse
> for example
>
> vlan1010@vlan10@eth1
>
> a) HW accelarated network card
> protocol = ethertype IPv4 (0x8100)
> tci = 10
> and data starts with 4500 0028
>
> the 4 bytes of real packet 03f2 0800 is lost too
>
> b) non HW accelarated network card
> 4 words of data packet are lost ...
>
> I have no problems with received packets, only outgoing packet have problem.
> I think that out packet on SOCK_DGRAM sockets MUST BE in same format as in (received) packet on same interface.
> Can we agree on this?

Yes, agreed.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/