From owner-freebsd-net Thu Nov 21 8:47:45 2002 Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2106237B404 for ; Thu, 21 Nov 2002 08:47:44 -0800 (PST) Received: from smtp.uc3m.es (smtp02.uc3m.es [163.117.136.122]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2168843E8A for ; Thu, 21 Nov 2002 08:47:31 -0800 (PST) (envelope-from jrh@it.uc3m.es) Received: from smtp02.uc3m.es (localhost [127.0.0.1]) by smtp.uc3m.es (Postfix) with ESMTP id 77AD7431CC; Thu, 21 Nov 2002 17:47:26 +0100 (CET) Received: from it.uc3m.es (zangano.it.uc3m.es [163.117.140.41]) by smtp02.uc3m.es (Postfix) with ESMTP id 1357499F34; Thu, 21 Nov 2002 17:47:24 +0100 (CET) Message-ID: <3DDD0E1B.80C8C4AA@it.uc3m.es> Date: Thu, 21 Nov 2002 17:47:23 +0100 From: Juan Francisco Rodriguez Hervella X-Mailer: Mozilla 4.74 [es] (X11; U; Linux 2.4.18 i686) X-Accept-Language: en MIME-Version: 1.0 To: freebsd-net@freebsd.org Cc: snap-users@kame.net Subject: Interrupt levels and concurrency Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org 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