> On 19 Dec 2024, at 08:20, David Gwynne <da...@gwynne.id.au> wrote:
>
>
>
>> On 19 Dec 2024, at 02:17, Maurice Janssen <maur...@z74.net> wrote:
>>
>> On Wed, Dec 18, 2024 at 11:51:26AM +1000, David Gwynne wrote:
>>> Hey Maurice,
>>>
>>> bluhm@ just did a talk at eurobsdcon that might help you understand the
>>> different points to look at. my tldr version is if packets are being
>>> dropped on the firewall it will be somewhere in the receive path. my
>>> experience is that once a packet has made it into the network stack
>>> it tends to get transmitted fine.
>>
>> Thanks for your reply. This has given me some new things to look at.
>>
>>> the places that packets can get dropped are in:
>>>
>>> 1. hardware
>>>
>>> hardware counters from igc should be visible using kstat(1) now. the
>>> igc-stats that you're looking at would be any of the errs/colls, or the
>>> rx no bufs counter.
>>
>> kstat(1) shows me that there are (nearly) no errors on the rx side, but
>> showed about 470k dropped packets (qdrops) on the tx side for igc2.
>
> wait, what?
do you see oactives going up too?
>
> do you have PCIe ASPM enabled in the bios?
>
>>
>>> 2. rxq drops and errors
>>>
>>> the rxq is where packets received by the driver are put before being
>>> handed over to the network stack. again, these are visible as kstats,
>>> but are also aggregated as interface level counters you can see with
>>> netstat -i. you can look at drops and errors individiually with netstat
>>> -id and netstat -ie respectively.
>>
>> netstat -id shows all zeros in de Idrop column, but the same 470k packets
>> in the Odrop column.
>> Not sure if this can also be caused by unplugging the cable. I did that
>> sereral times during testing/swapping switches on the igc2 port.
>> I will reboot to reset the counters and keep an eye on it.
>>
>>> the fact that you're using pppoe on top of a vlan adds some potential
>>> for loss too. there's a queue in between ethernet input processing and
>>> pppoe processing that could be dropping packets. i don't think we have a
>>> way to see drops on that queue though.
>>>
>>> if you're feeling brave you can try the diff i sent to the 'PPPoE
>>> passthrough with "GigaHub" is very slow' thread on misc@ a week or so
>>> ago which skips the queue for pppoe data packets.
>>
>> I think I can give it a try in a week or two.
>> For what it's worth: I see only 138 qdrops for pppoe0:0:txq:0 in kstat
>> output. And no drops on the rxq, but all counters are at zero so I guess
>> that doesn't say much.
>>
>>> 3. pf drops
>>>
>>> i think systat pf and pfctl -si are the best way to see counters here.
>>> however, i feel like there's some things that pf does and doesn't do
>>> sometimes that aren't captured well.
>>>
>>> 4. tx drops
>>>
>>> again, i think this is unlikely, but you should be able to see tx
>>> interface drops using the txq kstats or drops/errors in netstat -i
>>> output. there's tx counters in the igc-stats too.
>>
>> Furthermore, netstat -ss -p udp shows me:
>> udp:
>> 295407643 datagrams received
>> 1 with bad data length field
>> 2100 with bad checksum
>> 592550 with no checksum
>> 289009064 input packets software-checksummed
>> 318512247 output packets software-checksummed
>> 25112 dropped due to no socket
>> 239806 broadcast/multicast datagrams dropped due to no socket
>> 431246 dropped due to full socket buffers
>> 294709378 delivered
>> 348403092 datagrams output
>> 295132792 missed PCB cache
>>
>> But I don't know if there dropped packets are also on igc2.
>>
>> Thanks again and best regards,
>> Maurice