Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Nov 2002 17:47:23 +0100
From:      Juan Francisco Rodriguez Hervella <jrh@it.uc3m.es>
To:        freebsd-net@freebsd.org
Cc:        snap-users@kame.net
Subject:   Interrupt levels and concurrency
Message-ID:  <3DDD0E1B.80C8C4AA@it.uc3m.es>

next in thread | raw e-mail | index | archive | help
Hello (again :)

I'm doing my best, but I'm in a mess trying to understand
the interrup levels and if I should take it into account
to implement what I want to implement :)

As I'm working with KAME source code, I will CC this question.
(KAME people always help me a lot :)

I have the following situation: I've got an array, which
is filled in using received packets, but it can also be filled in
using the function "getaddrinfo()". Finally, this array 
is searched inside ip_output() function.

So I was thinking of implementing the interaction between "getaddrinfo"
and this kernel-array using "sysctl" interface, but I was wondering
if I need to low the interrup level to fill in this array inside the
sysctl_function(), because it could happen that at the same time 
a new packet arrived at and it can try to access the same structure.

I've implemented some other code with sysctls calls and I've never
worried about the interrups levels, but now I've got a doubt...
does "sysctl" takes into account the likehood of concurrent system calls
?
I hope so....

Returning to my implementation, Would I have to worry about the case
when "getaddrinfo" is calling to sysctl to add a new entry and then the
function ip_output() begins to search the share structure also ?

I can see that my array can be accesed from (at least) the following
points:

1. User layer (getaddrinfo)
2. IP layer (ip_input, ip_output)

I was thinking of calling directly to the sysctl_function() inside
ip_input() and also inside ip_output(). I hope there's no problem with
this.

Could you suggest me anything ? You have a lot of experience
with these topics, and any guideline or explanation that you give
me will be very very thanksfully thanked (sorry for my awful English :)

Thanks!

-- 
JFRH.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3DDD0E1B.80C8C4AA>