adding field into conntrack
Mon, 2 Aug 2004 10:46:02 +0200
Content-Type: text/plain; charset=us-ascii
On Mon, Aug 02, 2004 at 10:12:40AM +0200, firstname.lastname@example.org wrote:
> Around line 1320 of net/core/dev.c, the packet is fed to the queueing
> discipline associated with the egressing interface. The enqueuing
> operation might not be succesful or even being succesful it could have
> made the queueing discipline drop an other packet (possibly belonging
> to an other stream).
> The error we made could be huge with respect to open loop streams
> (such as UDP), while with closed loop ones we could imagine that there
> will be not that much difference between the throughput seen before
> the enqueuing and the goodput seen after the deuqueuing.
My reason for making it less accurate was performance. By putting the
counter updates into the ip_ct_refresh_acct() function, we minimize
write lock contention on ip_conntrack_lock, since we only need to grab
it once per packet (as opposed to a second time after qdisc enqueue).
But if I understood your approach corretly, you would want to keep this
code in place but later check for enqueue result and decrement
accounting? This means that the extra write lock grab would only happen
in case of dropped packets... that sounds fine.
Please prepare an incremental patch and we'll review & discuss with
- Harald Welte <email@example.com> http://www.netfilter.org/
"Fragmentation is like classful addressing -- an interesting early
architectural error that shows how much experimentation was going
on while IP was being designed." -- Paul Vixie
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
-----END PGP SIGNATURE-----