Standard socket call, sock = socket(AF_INET, SOCK_STREAM, 0); This getsus a TCP socket. sock = socket(AF_INET, SOCK_DGRAM, 0); This gets us a UDP socket. Question is when we call socket we don't specify the exact protocol, which is what we've been keying off so far. So, are people happy that we add a couple more fields to the net_module structure that we use to store the extra details? Specifically, pr_type = SOCK_[STREAM|DGRAM|RAW] pr_protocol = IPPROTO_[UDP|TCP|RAW|ICMP|IGMP] | 0 (IP) Then we need a function that will find the module that deals with a particular combination...but that can just walk a list so I'm not worried about that. Anyone any thougts? I ask as this is needed for the sockets stuff :) david