Monthly Archives: August 2005

setsockopt and getsockopt for the packet size, that is used in the CCID3 transmit rate calculations and tested it using ttcp patched to support DCCP

mucho ccid3 polishing (timeval, usecs divisions, etc)

moved the loss interval code from ccid3 to loss_interval.c

moved the TFRC equation used to determine the sending rate according to RFC 3448 (TCP Friendly Rate Control) to tfrc_equation.c

moved more packet history code to packet_history.c

created a new module, dccp_tfrc_lib.ko, that for now is used only by ccid3.c but will be used to implement other CCIDs, such as the CCID3 VoIP variant

implemented dccp_poll, and tested it with netcat patched to support DCCP

implemented dccp_get_info, now its possible to get information such as the rcv and send RTT, etc using iproute2

I also setup a test network here at home with a router between the two machines where I run DCCP clients and servers, ttcp mostly so far and in the router I use the netem qdisc to induce packet loss and delay, I’m really liking netem so far, very handy.

This entry somehow disappeared from my MySQL wordpress tables, so I restored it from google cache, unfortunately there were some comments in this entry but I didn’t took the time of restoring it from the cache, I’m sorry…

Sent a message to the DCCP lists (at vger and IETF) reporting a milestone, the current implementation finally survives sending tons of data in a DCCP patched ttcp, the CLOSING timer is basicly implemented and now I’m working on providing more info thru inet_diag, so it seems this thing is in the right direction.

Got most of net/ sparse clean, Dave merged all the submitted patches and the last cases (related to put_cmsg et al) I’m discussing with Al Viro.

Also fixed a nasty bug in DCCP related to the draft pseudocode step 6, where we’re not using the updated SWL when receiving SYNC or SYNCACK packets. Also actually answer SYNC packets with SYNCACK ones, there is still some remaining case where a received SYNC is not eliciting an immediate SYNCACK packet, will investigate tomorrow.

Spent some time on ostra after some weeks, this time making ostra-grep create .ostra.proto files with the target function prototypes so that ostra-create-kmodule can create the respective jprobes, there are still some problems with typedefs but with some minimal hand editing the generated kernel module works well. Now I’m trying to figure out how to access the function parameters in a kretprobe, will take a look at systemtap to see if they solve this in some way.

David came up with a proof-of-concept patch in the dccp at vger dot kernel dot org mailing list, mostly with what I was planning to do anyway, so I took from there and now there are 6 changesets doing this work waiting for review/merging at my latest tree.

UDP needs more thinking on how to properly make it use inet_diag, perhaps by passing the lookup function pointer in struct inet_diag_handler and marking this struct as handling non inet_connection_sock sockets so that it doesn’t try to mess with non existing fields of the cast passed udp_hashinfo, that would really be just a struct inet_ehash_bucket modified to have the ehash_size moved from inet_hashtables to it.

I have been working now to remove the last TCP specific bits in net/ipv4/tcp_diag.c, and to accomplish this the TCP CA avoidance infrastructure will be moved to struct inet_connection_sock, antecipating something I planned to do anyway, i.e. to generalise this infrastructure to use it in DCCP and who knows, even turn it into a generic infrastructure for use by other protocols or even other unrelated kernel areas (whee, here I’m possibly going over the top, time will tell).

This is perhaps one of the funniest areas in net/, with things like “death_lock” and “for_each_inmate”, I have moved all of this code to net/ipv4/inet_timewait_sock and now DCCP has TIMEWAIT sockets sharing hashdances and hangmens with TCP! 🙂

Just got back from Estação Shopping, oysters are always good at Bombordo, but I had never tried shellfish (kinda boiled), yummy indeed, and to finish some fancy ice-cream, no wonder I’m way overweight, but nah, its good to get away from the keyboard for a while, Sarita likes it even more 8) And she bought so many wool threads that I guess she will knit for weeks.