adding field into conntrack

Harald Welte laforge@netfilter.org
Mon, 2 Aug 2004 10:46:02 +0200


--0FM4RQAc0jwHekq5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 02, 2004 at 10:12:40AM +0200, sandr8@crocetta.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).

Yes, indeed.

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

> Alessandro
--=20
- Harald Welte <laforge@netfilter.org>             http://www.netfilter.org/
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D
  "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

--0FM4RQAc0jwHekq5
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFBDf9JXaXGVTD0i/8RAqhhAJ9sYkfzFnlDAseI4yuSNpC4RQa5GQCfam1i
fmkUR2lpL3xWWkd8PzQeCGU=
=SuLx
-----END PGP SIGNATURE-----

--0FM4RQAc0jwHekq5--