[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [dccp] A quick question about sequence validity windows
On 11/30/05, Eddie Kohler <kohler at cs.ucla.edu> wrote:
> Yep! Specifically, we assume a receive buffer.
>
> Eddie
>
> Xiaofeng Han wrote:
> > Hello Eddie
> >
> > thanks for your reply.
Using the Linux implementation present in the 2.6.14 kernel sources we have:
> > In my question, the lower bound I mean is GSR+1-(W/4), since new
>> data is coming, the GSR increases, some data with sequence #
>> smaller than the new GSR+1-(W/4) becomes out of the range of the
>> window.
this is done in net/dccp/input.c, function dccp_check_seqno()
> > If I understand correctly, there is actually another buffer to store the
> > data, the sequence validity windows is something like a filter to
> > control the incoming data, but it has nothing to do with the data in the
> > other buffer, is this understanding correct?
The name of this buffer in Linux is struct sock->sk_receive_queue,
fed mainly by dccp_rcv_established(), in ./net/dccp/input.c:
/* Remove the DCCP header */
__skb_pull(skb, dh->dccph_doff * 4);
/* Queue the packet for later processing */
__skb_queue_tail(&sk->sk_receive_queue, skb);
/* Account the packet to its socket */
skb_set_owner_r(skb, sk);
/* Wake up upper layers waiting for packets */
sk->sk_data_ready(sk, 0);
For a mostly complete callgraph of the packet flow please take a look
at:
http://oops.ghostprotocols.net:81/dccp/ostra/rx/
http://oops.ghostprotocols.net:81/dccp/ostra/tx/
Best Regards,
- Arnaldo