Subject: Re: [PATCH net-next v3] igc: offload queue max SDU from tc-taprio

From: Jakub Kicinski <[email-masked]>
Date: Mon, 13 Feb 2023 22:40:03 -0800

On Tue, 14 Feb 2023 06:27:17 +0000 Zulkifli, Muhammad Husaini wrote:
> > > +	if (tx_ring->max_sdu > 0) {
> > > +		max_sdu = tx_ring->max_sdu +
> > > +			  (skb_vlan_tagged(skb) ? VLAN_HLEN : 0);
> > > +
> > > +		if (skb->len > max_sdu)  
> > 
> > You should increment some counter here. Otherwise it's a silent discard.  
> 
> I am thinking to use tx_dropped counters for this. Is it ok?

Yup!

> > > +			goto skb_drop;
> > > +	}
> > > +
> > >  	if (!tx_ring->launchtime_enable)
> > >  		goto done;
> > >
> > > @@ -1606,6 +1615,11 @@ static netdev_tx_t igc_xmit_frame_ring(struct sk_buff *skb,  
> > >  	dev_kfree_skb_any(first->skb);  
> > 
> > first->skb is skb, as far as I can tell, you can reshuffle this code to
> > avoid adding the new return flow.  
> 
> What we try to do is to check the current max_sdu size at the
> beginning stage of the func() and drop it quickly.

I understand, what I'm saying is that the code which is already here
can be reused, it currently operates on first->skb but it can as well
use skb. And then you'll be able to jump to the same statement, rather
than have to create a separate return.