On Fri, Jan 30, 2009 at 10:23 PM, Greg KH <[email protected]> wrote:
> On Fri, Jan 30, 2009 at 02:55:01PM -0500, Bob Beers wrote:
>> I have a voip device where I currently send my data up/down between driver
>>  and user space using an interrupt driven read/write scheme. I send/recv
>>  the data using standard UDP packets in userspace. I'd like to try to 
>> decrease
>>  my end-to-end latency by letting the driver send/recv most of this
>> data directly
>>  to the network.
>>
>> Are there drivers which already do this kind of thing that I might learn 
>> from?
>
> You can access the socket interface directly within the kernel, look for
> that, and any callers of this code, there should be a few users for you
> to get an idea of how to use it.

I've been following the example
 <http://kernelnewbies.org/Simple_UDP_Server>,
 and I am having some success -- only tried receiving so far --
 but I am getting an error when I try to insert the following
 between the sock_create and bind calls.

-----------8<------------------
        {
                int arg = 1;
                
                err = kthread->sock->ops->setsockopt(kthread->sock, SOL_SOCKET,
                                                                                
        SO_REUSEADDR,
                                                                                
        (void *)&arg, sizeof(arg));
                if (err) {
                        printk(KERN_INFO, "kthread[%d] setsockopt REUSEADDR 
error: %d\n",
                                        kthread->voipch, err);
                }
        }
-----------8<------------------

Here is the error message:

ksocket_start: kthread[0] setsockopt REUSEADDR error: -92

The packets are recv'd, but why can't I use SO_REUSEADDR ???

Thanks,
-Bob

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to