Subject: Re: DSA support for Marvell 88e6065 switch

From: Pavel Machek <[email-masked]>
Date: Wed, 5 Dec 2018 21:46:00 +0100

Hi!

> > > > But I'm running into problems with tagging code, and I guess I'd like
> > > > some help understanding.
> > > > 
> > > > tag_trailer: allocates new skb, then copies data around.
> > > > 
> > > > tag_qca: does dev->stats.tx_packets++, and reuses existing skb.
> > > > 
> > > > tag_brcm: reuses existing skb.
> > 
> > Any idea why tag trailer allocates new skb,
> 
> I wrote this code over 10 years ago, so I don't remember all that
> well, but I think that it is because you have to do manual checksumming
> of the packet, as there's no way to pass down the stack that you don't
> want to checksum all the way down to the end of the data area (and you
> don't want the tag to be included in the checksum), and so you want to
> do that before you add the trailer tag, and you'll probably have to
> reallocate the data area to be able to add the tag, and you probably
> won't get an exclusive skb here anyway, so you might as well allocate
> a new one.

Ok, thanks. Whether tag is checksummed or not is indeed an interesting question.

> > and what is going on with dev->stats.tx_packets++?
> 
> trailer_xmit would be the hard_start_xmit function for the virtual
> (slave) network interface, so this would be the right thing to do?

Some tag_*.c do this and some do not, so I'm still confused.

> > 6065 indeed has some kind of "egress tagging mode" (with four
> > options), but I have trouble understanding what it really does.
> 
> What are the options?

"transmit unmodified", "transmit untagged", "transmit tagged" and
"transmit all frames double tagged".

Best regards,
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html