ipfw2 for dragonflybsd

Sepherosa Ziehau sepherosa at gmail.com
Tue Dec 9 00:48:07 PST 2014


You could use tools/tools/netrate/accept_connect/kq_accept_server and
kq_connect_client.  Make sure you have following settings on both end:
net.inet.ip.portrange.last=40000
route change -net YOUR_TEST_SUBNET -msl 10



On Sun, Dec 7, 2014 at 1:06 PM, bycn82 <bycn82 at gmail.com> wrote:
> "lockless state" was there, but any recommendation about the testing in
> order to know the performance different?
>
> On Fri, Dec 5, 2014 at 5:25 PM, Sepherosa Ziehau <sepherosa at gmail.com>
> wrote:
>>
>> On Fri, Dec 5, 2014 at 3:39 PM, bycn82 <bycn82 at gmail.com> wrote:
>> > It will be good to have a try on this "lock-less NAT" in order to know
>> > the
>> > performance. but IMHO, I think the performance will not be good
>> > especially
>> > when the machines has lots of CPU.
>>
>>
>> Number of CPUs does not matter that much, since its bwteen at most two
>> CPUs (two netisrs).\
>>
>> Best Regards,
>> sephe
>>
>>
>> >
>> > Anyway , next will be "lockless" for "keep-state". maybe this weekend :)
>> >
>> >
>> > On Fri, Dec 5, 2014 at 3:11 PM, Sepherosa Ziehau <sepherosa at gmail.com>
>> > wrote:
>> >>
>> >> On Fri, Dec 5, 2014 at 2:38 AM, Matthew Dillon
>> >> <dillon at apollo.backplane.com> wrote:
>> >> >     On how to make NAT work, what I did in PF was this:
>> >> >
>> >> >     (a) When the port is not locked to a particular number, I simply
>> >> > iterate
>> >> >         ports until the toepliz hash for the translated address/port
>> >> > pair
>> >> >         winds up on the same cpu as the toeplez hash of the original.
>> >> >
>> >> >         This way both sides of the NAT conversation wind up on the
>> >> > same
>> >> > cpu
>> >> >         and no locking is required.
>> >> >
>> >> >     (b) If the translated port is locked (which is a feature that PF
>> >> > has,
>> >> >         for example), it may not be possible to match up the toeplez
>> >> > hash.
>> >> >
>> >> >         In this situation the state goes into a global table with a
>> >> > global
>> >> >         lock, and the state is individually locked by the filter.
>> >> >
>> >>
>> >> In addition to what Matt has mentioned, I think lockless NAT could be
>> >> implemented in the following way:
>> >>
>> >> - On output path install state for the current netisr.  And rehash the
>> >> packet then send to the target netisr, and install 'sibling state' in
>> >> the target netisr; do the real output there.
>> >> - Same applies to the input path; but do the protocol input in the
>> >> target netisr.
>> >>
>> >> However, the result may not be better than or as good as
>> >> per-cpu+global lock Matt implemented for the PF, since my way requires
>> >> additional dispatch.
>> >>
>> >> Best Regards,
>> >> sephe
>> >>
>> >> --
>> >> Tomorrow Will Never Die
>> >
>> >
>>
>>
>>
>> --
>> Tomorrow Will Never Die
>
>



-- 
Tomorrow Will Never Die



More information about the Users mailing list