Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Feb 2008 21:24:26 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
To:        Robert Watson <rwatson@FreeBSD.org>
Cc:        arch@FreeBSD.org, kmacy@FreeBSD.org, net@FreeBSD.org
Subject:   Re: Network device driver KPI/ABI and TOE
Message-ID:  <20080217210205.A49429@maildrop.int.zabbadoz.net>
In-Reply-To: <20080106124517.G105@fledge.watson.org>
References:  <20080106124517.G105@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 6 Jan 2008, Robert Watson wrote:

Hi,

[cutting a long mail short and randomly replying;-)]

I came across dev/cxgb/ulp/tom/cxgb_tcp_subr.c vs. netinet/tcp_subr.c
and I am a bit worried with the way things are done atm. For those
functions copied over there are only changes like:

-                       tp = cxgb_tcp_drop(tp, ECONNABORTED);
+                       tp = tcp_drop(tp, ECONNABORTED);

-               notify = cxgb_tcp_drop_syn_sent;
+               notify = tcp_drop_syn_sent;

-               tcp_gen_listen_close(tp);
+               tcp_offload_listen_close(tp);

-               (void) tcp_gen_reset(tp);
+               (void) tcp_output_reset(tp);

and SYSCTL stuff.


This is a "problem" for following reasons:
- code duplication
- if one changes netinet/tcp_subr.c one has to change foo4_tcp_subr.c
   as well
- if more drivers are going to implement things that way it'll be
   even more code duplication.
- developers will have to check lots of different places they might
   not expect in first place.
- those things might interfere with our locking as well.

I assume (without looking) the other files in the tom directory expose
similar behavior. So this is a more general problem:

we need to seriously think about abstracting our tcp_subr.c (and
other) functions to avoid this duplication or at least integrate
things better by other ways.

This is mostly asking networking people to think about this so we can
iteratively improve things. cxgb has done a good first step in that
direction, now is the time to further hone things.


/bz

-- 
Bjoern A. Zeeb                                 bzeeb at Zabbadoz dot NeT
Software is harder than hardware  so better get it right the first time.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080217210205.A49429>