From: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
To: Max Krasnyansky <maxk@qualcomm.com>
Cc: netdev@oss.sgi.com
Subject: Re: New module infrastructure for net_proto_family
Date: Mon, 28 Apr 2003 22:43:26 -0300 [thread overview]
Message-ID: <20030429014326.GA24835@conectiva.com.br> (raw)
In-Reply-To: <5.1.0.14.2.20030428130220.10644ee0@unixmail.qualcomm.com>
Em Mon, Apr 28, 2003 at 02:10:11PM -0700, Max Krasnyansky escreveu:
> Hi Arnaldo,
>
> Hmm, no comments on my last email (http://marc.theaimsgroup.com/?l=linux-netdev&m=105123134301565&w=2)
> Are you trying to ignore me too ? ;-)
Nope, I was working on the higher layer first, to then come to the net families
that are already modular and have per-protocol modules, and I'm starting to look
into the only, AFAIK, network family that has this in place: bluetooth :-)
Having said that I haven't fully studied this I see two scenarios (brainstorming):
1. the net family that wants per protocol "sub" modules "duplicates" the
infrastructure having PROTO_sk_alloc and PROTO_destruct (the sk_free
sk->destruct hook call), PROTO_sk_alloc uses its net_families equivalent
(bt_proto in bluetooth) to find the owner (the "sub" module, i.e. per protocol
module) and PROTO_net_family_gets it, then calls sk_alloc proper, and when the
last reference to the sock is released the sk->destruct is called
(PROTO_destruct) does the PROTO_net_family_put. Ditto for the socket case,
where PROTO_create, before calling the ->create of the "sub" module does the
PROTO_net_family_get, and at release time its PROTO_release does the same thing
that sock_release does. Something like this may well need extra info to be kept
at the private area of the proto family in struct sock protinfo or private slab
cache.
That is, we have a higher layer for net families, with locking for the whole
family done like it is on the tree now and a lower layer at the specific
net family, both having the same behaviour at its layers.
This option seems to be easy to implement with the current bluetooth
infrastructure (i.e. it has a net_families equivalent, it does the switching at
bt_create time, etc).
2. use the sk->prot (struct proto) infrastructure in some way.
Comments?
> Anyway, here is another idea. How about this (untested, uncompiled, just rfc).
I didn't liked it, kind of layering violation that I'm trying to avoid.
- Arnaldo
next prev parent reply other threads:[~2003-04-29 1:43 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <5.1.0.14.2.20030423114915.10840678@unixmail.qualcomm.com>
[not found] ` <20030423192640.GD26052@conectiva.com.br>
2003-04-23 22:51 ` [BK ChangeSet@1.1118.1.1] new module infrastructure for net_proto_family Max Krasnyansky
2003-04-23 23:30 ` David S. Miller
2003-04-24 1:41 ` Max Krasnyansky
2003-04-24 3:29 ` David S. Miller
2003-04-24 16:43 ` Max Krasnyansky
2003-04-24 6:44 ` Arnaldo Carvalho de Melo
2003-04-24 19:33 ` Max Krasnyansky
2003-04-24 23:02 ` Arnaldo Carvalho de Melo
2003-04-25 0:40 ` Max Krasnyansky
2003-04-28 21:10 ` New " Max Krasnyansky
2003-04-29 1:43 ` Arnaldo Carvalho de Melo [this message]
2003-04-29 19:21 ` Max Krasnyansky
2003-04-29 21:55 ` Arnaldo Carvalho de Melo
2003-04-29 23:39 ` Max Krasnyansky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030429014326.GA24835@conectiva.com.br \
--to=acme@conectiva.com.br \
--cc=maxk@qualcomm.com \
--cc=netdev@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).