Kernel error

2006-04-16 Thread Saurabh Jain
Hi Guys,

I am getting the following kernel error while doing some experiments.
Any idea where things are going wrong. To me it looks like there is an
error while copying data from user space to kernel space. The
application which i am running is iperf. However i also have netem
module for emulating some wide area network characteristics like
delay. I am using delay of 100ms.

##Error Message#
Unable to handle kernel NULL pointer dereference at virtual address 0004
 printing eip:
c02fee3c
*pde = 7ded4067
Oops: 0002 [#5]
Modules linked in: setparam(U) sch_netem(U) nfs(U) lockd(U) autofs4(U)
sunrpc(U)CPU:0
EIP:0060:[c02fee3c]Not tainted VLI
EFLAGS: 00010286   (2.6.12-1.1390_FC4-emulab-1)
EIP is at tcp_transmit_skb+0x3ef/0x8de
eax:    ebx: f71a1a40   ecx: ed64f960   edx: ed64ff60
esi:    edi: f2f98500   ebp: ed71b780   esp: f47bddd4
ds: 007b   es: 007b   ss: 0068
Process iperf (pid: 2443, threadinfo=f47bc000 task=f71a1a40)
Stack: f2f9854c c02d1019 ed71b7b8 f2f98500 ed15cc80 0282 ed71b780 0100
   c02ce99f f71a1a40 f2f98500 f71a1a40  f2f98500 f2f9854c c02f53ad
    ed335db8 f2f98500 f2f98500 f47bdeb8   002ce99f
Call Trace:
 [c02d1019] skb_copy_datagram_iovec+0x180/0x1f8
 [c02ce99f] alloc_skb+0x31/0xc1
 [c02f53ad] tcp_recvmsg+0x2b1/0x74e
 [c02fd83f] tcp_rcv_established+0x5d2/0x77a
 [c02ce2e0] sock_common_recvmsg+0x41/0x57
 [c02cb052] sock_aio_read+0xf9/0x12b
 [c014fccb] do_sync_read+0x9e/0xec
 [c01291ae] autoremove_wake_function+0x0/0x37
 [c014fe23] vfs_read+0x10a/0x10e
 [c0150064] sys_read+0x41/0x6a
 [c0102d29] syscall_call+0x7/0xb
Code: a1 04 07 39 c0 e8 c0 e5 e3 ff 89 c2 85 c0 74 2d 83 87 08 04 00 00 01 8b 8
#

Thanks in advance
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Writing a Rate based transport protocol

2006-03-13 Thread Saurabh Jain
Hi All,

I am trying to write a new rate based transport protocol in linux
kernel (either as a module or directly within the kernel). Basically
it would be similar to UDP but with features like dynamic rate
control, connection and state management, error control like TCP. Is
there any established framework which i can use? I know there is one
for window based protocols like TCP where one can dynamically register
different congestion control mechanisms. I would appreciate if
somebody can give me some direction in this regard.

Thanks in advance.
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: TCP slow start

2006-01-29 Thread Saurabh Jain
I am posting this again. I would really appreciate if somebody can
answer this. I am beating myself with no success in getting to the
root of this mystery. TCP still stays in slow start even though
snd_cwnd = snd_ssthresh and moves to CA only when there has been a
packet loss.  Can anybody confirm this?.

Thanks in advance.

On 1/27/06, Saurabh Jain [EMAIL PROTECTED] wrote:
 Hi All,

 Looking at the TCP stack code it seems that if the variable snd_cwnd 
 snd_ssthresh, TCP would move to congestion avoidance. Is that correct?
 Are there any other constraints as far as linux implementation goes?
 Will that condition hold even if there has been no packet drop or dup
 acks received. For example if through some module i make snd_ssthresh
 = max(snd_cwnd/2,2), will TCP go to congestion avoidance even though
 there has been no loss indication?

 Thanks in advance.

-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


TCP slow start

2006-01-26 Thread Saurabh Jain
Hi All,

Looking at the TCP stack code it seems that if the variable snd_cwnd 
snd_ssthresh, TCP would move to congestion avoidance. Is that correct?
Are there any other constraints as far as linux implementation goes?
Will that condition hold even if there has been no packet drop or dup
acks received. For example if through some module i make snd_ssthresh
= max(snd_cwnd/2,2), will TCP go to congestion avoidance even though
there has been no loss indication?

Thanks in advance.
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


SRTT value least count

2006-01-19 Thread Saurabh Jain
Hi All,

After going through the TCP code in linux kernel it seems that TCP in
linux stores srtt in milliseconds and it is inflated by a factor of 8.
Does this means that TCP in linux can measure any rtt which is greater
than 125 microseconds? The code will store a value of 1 for srtt
variable when the rtt is 125 micro seconds (125 microsecond * 8 = 1
millisecond).

Saurabh
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


SRTT in TCP code of linux kernel

2006-01-19 Thread Saurabh Jain
Hi All,

After going through the TCP code in linux kernel it seems that TCP in
linux stores srtt in milliseconds and it is inflated by a factor of 8.
Does this means that TCP in linux can measure any rtt which is greater
than 125 microseconds? The code will store a value of 1 for srtt
variable when the rtt is 125 micro seconds (125 microsecond * 8 = 1
millisecond).

Saurabh
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Welcome to linux-net

2006-01-15 Thread Saurabh Jain
Hi All,

This is my first post to this mailing list.

I am writing a new network protocol in the form of a module. I
finished writing it in kernel 2.6.9 on Fedora Core 3 distribution. It
is working great.

However my implementation is not working on newer kernels like 2.6.12
etc. On doing some research i found the reason why it broke.

In my implementation i need access to the tcp_protocol handler which i
used to get using the following lines of code:

extern struct net_protocol tcp_protocol;
tcp_protocol.handler(skb);

However after kernel 2.6.9, the export of the variables like
tcp_protocol or udp_protocol has been removed and hence i cannot
access the handler using them. Does any body know of a way to get
access to the tcp_protocol handler.

Let me know if anything is not clear as mentioned above.

Thanks in advance,
Saurabh
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html