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. >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