> That's nice to hear.  Note
that &quot;will be&quot; is not at all sure at this moment.<br>&gt; It&#39;s just a proposal AFAIK.

<p style="margin-bottom: 0cm;">think about commenting like just
answering to some person, without any relations to GSoC :)<br>I&#39;m also not sure, I&#39;ll apply GSoC this
year. <br><br>&gt; = 1 =<br>&gt; I want port netconf to FreeBSD
(cause I like FreeBSD last years more than<br>&gt; Linux). For this
purpose some replacement is needed, cause netconf deeply<br>&gt;
relies on shell scripts, that utilize iproute2.<br><br>&gt; Iproute2
provides an interface to the kernel. AFAIK, this interface is<br>&gt;
not kernel-specific and could in principle be implemented on any
other<br>&gt; system with networking support.</p>



<p style="margin-bottom: 0cm;">netconf uses ip command (and I&#39;m pretty
sure intends to use command similar to tc in future).<br>Such commands are absent in base
FreeBSD (traffic shaping for example usually is implemented in pipes,<br>provided by ipfw). Interface may be exists, but used by netconf
scripts are working with standalone utilities,<br>not with system
calls.<br><br>&gt; If this is correct, then IMO netconf should just
continue to use those<br>&gt; tools. If things can&#39;t work on
FreeBSD that way, the bug is with<br>&gt; iproute2 not being available
there, not with netconf using it.</p>
<p style="margin-bottom: 0cm;">Well, bug or not bug, it prevents from
direct and easy porting.<br><br>&gt; I don&#39;t have a problem with
requiring people to use a reasonable new<br>&gt; kernel. Getting
iproute2 to work on an old distribution with a new<br>&gt; kernel
should be no problem.</p>
<p style="margin-bottom: 0cm;">Old kernels were mentioned to highlight
porting issue.<br><br>&gt; I don&#39;t know enough about the internals to
comment much on this. In<br>&gt; principle, passing events instead of
scripts sounds good to me, but<br>&gt; doing different things on
different platforms should be avoided whenever<br>&gt; possible IMO.</p>
<p style="margin-bottom: 0cm;">Hiding real script name must help to
make everything in uniform way on every platform.<br><br>&gt;&gt;
Other one opportunity - forget about scripts and use C module,
which<br>&gt;&gt; executes system calls. There are not so many
network related events, so one<br>&gt;&gt; solid network related
module may handle all of them by cost of a little bit<br>&gt;&gt;
harder extensibility.<br>&gt; And more work. Those script tools
already exist, the module still needs<br>&gt; to be written.</p>
<p style="margin-bottom: 0cm;">You&#39;re right it&#39;ll need more work, but
many operations like modification of routing table<br>and so on may be
done by system call. Module with bindings to python may be more<br>convenient. But as I understood, such way is against main idea of
netconf to use external<br>scripts and utilities, so it&#39;s better for me
that it must not be created.<br><br>&gt;&gt; = 4 =<br>&gt; IMO
the policy should be very flexible, but very simple. That means<br>&gt;
something like you propose would be one option, but there should also
be<br>&gt; a way to use user-provided scripts to decide what is
allowed.</p>



<p style="margin-bottom: 0cm;">You mean tool for user-friendly
generation of security policy configuration file?<br><br>&gt;&gt; = 5
=<br>&gt; This is conceptually a hard problem. It would be nice if
the plugins<br>&gt; don&#39;t need to know about each other&#39;s existance,
so you would need to<br>&gt; use the list approach. However,
sometimes a plugin may want to say &quot;I<br>&gt; can handle this,
but it won&#39;t be optimal&quot;. Should it fail or not?<br>In other
message I&#39;ve suggested "priority". Decision to use module is done<br>by event dispatcher, which may operate
priority to choose correct module.<br>(there is problem still how priority
and optimality are related :), but if priority<br>is set in configuration file, then user
knows which is better)</p>
<p style="margin-bottom: 0cm;">&gt; Perhaps it would be best to
always ask all plugins and let them say how<br>&gt; good they can
handle it. Filter those numbers through some<br>&gt; user-provided
filter (default: don&#39;t change), and the highest scoring<br>&gt;
plugin will actually handle the event.</p>

<p style="margin-bottom: 0cm;">Scores are not good, cause author of
one module may show you 10, author of other module 155.<br>But in fact they are same but in
different author&#39;s scales.</p>




<p style="margin-bottom: 0cm;">Better to use predefined categories
(MODULE_CAN, MODULE_CANNOT,<br>MODULE_DONTWANTBUTCAN) or somewhat
similar. <br><br>&gt; I think Martin talked about this sort of thing
at FOSDEM.<br>&gt; What he said was basically that we
don&#39;t want to hack around bugs.<br>&gt; I agree with that. (This is
related to the iproute2 thing as well.)<br>&gt; I think it&#39;s good to handle events
like &quot;go to sleep&quot; and &quot;wake up&quot;,<br>&gt; which
can come in response to ACPI events. However, hacking around<br>&gt;
hardware bugs should happen as close to the hardware as possible,
which<br>&gt; (almost?) always means not in netconf.</p>


<p style="margin-bottom: 0cm;">Look to example:<br>1. user configured ppp interface, init
configured eth0 statically and eth1 via DHCP. So, three different
configuration events.<br>2. user made computer sleep. 
</p>

<p style="margin-bottom: 0cm;">To go to sleep acpi related script must
know all about configured interfaces and configuration types<br>to use
control socket. That is – as I think – is not good. But if
related script uses control socket only<br>to send event like "store
state" and on wakeup - "restore state", there is no such
problem with need<br>in very clever script.  <br><br>Handling issues
with acpi related and unrelated kernel module hang ups, of course is
not problem of netconf.<br><br>Thanks for your comments.<br></p>


<p style="margin-bottom: 0cm;">---<br>Best regards,<br>Alexey</p>