From: llj098@gmail.com (lijin liu)
To: kernelnewbies@lists.kernelnewbies.org
Subject: struct sock change in kernel 2.6
Date: Thu, 23 Dec 2010 08:18:06 +0800 [thread overview]
Message-ID: <AANLkTimrABb9z63puwn_YUue3Qw9jWgOSEwifq4Ct_r6@mail.gmail.com> (raw)
In-Reply-To: <AANLkTim=1VuEKw47Hs+OfujQsdjtRK1qXK155Df98=0M@mail.gmail.com>
Hi Bharath,all,
On Thu, Dec 23, 2010 at 12:31 AM, Bharath H S <bhslinker@gmail.com> wrote:
>
> Hi Lijin liu,
> There is sk_sleep function in include/net/sock.h line 1241 This might help.
> - Bharath H S
>
>
>
> On Wed, Dec 22, 2010 at 11:47 AM, lijin liu <llj098@gmail.com> wrote:
>>
>> Hello everyone!
>>
>> I am trying to implement a simple tcp server in the kernel. I read the
>> ktcpvs's source code, but it works under kernel 2.4.
>>
>> The ?struct sock changed in kernel 2.6, I have two questions about the struct:
>>
>> 1. Is sk_wq field in 2.6 equals to sk_sleep field in 2.4?
>> 2. How can I access the tcp accept queue in kernel 2.6? (In kernel
>> 2.4, we could use tp_pinfo.af_tcp.accept_queue, but it was removed in
>> 2.6)
>>
>>
>> PS: Should sk_receive_queue in the struct sock be used as
>> tp_pinfo.af_tcp.accept_queue?
>>
>> Thanks a lot!
>>
>> _______________________________________________
>> Kernelnewbies mailing list
>> Kernelnewbies at kernelnewbies.org
>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
It seems that I found the answer.
After reading the source code, comparing the codes of the two versions
I got the answer:
1.We can use sk_wq->wait instead of sk_wait.
2.Use reqsk_queue_empty(struct request_sock_queue*) to check if there
is a new connection to accept. (thsi method is in net/request_sock.h)
we can use it like:
struct inet_connection_sock *isock = inet_csk(socket->sk);
if(reqsk_queue_empty(&isock->icsk_accept_queue)){
//sleep here
}
I test them in my code, works well.
next prev parent reply other threads:[~2010-12-23 0:18 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-22 6:17 struct sock change in kernel 2.6 lijin liu
2010-12-22 16:31 ` Bharath H S
2010-12-23 0:18 ` lijin liu [this message]
2010-12-23 5:16 ` Mulyadi Santosa
2010-12-23 5:19 ` lijin liu
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=AANLkTimrABb9z63puwn_YUue3Qw9jWgOSEwifq4Ct_r6@mail.gmail.com \
--to=llj098@gmail.com \
--cc=kernelnewbies@lists.kernelnewbies.org \
/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).