net.inet.ip.forwarding and net.inet.ip.fastforwarding
Sam Leffler
sam at errno.com
Fri Sep 9 09:29:27 PDT 2005
eculp at bafirst.com wrote:
> Quoting Sam Leffler <sam at errno.com>:
>
>> Matt Emmerton wrote:
>>
>>>> Hi guys.
>>>>
>>>> What's the difference between net.inet.ip.forwarding and
>>>
>>>
>>> net.inet.ip.fastforwarding ?
>>>
>>>> What's the role of net.inet.ip.fastforwarding ?
>>>
>>>
>>>
>>>> From inet(4):
>>>
>>>
>>> IPCTL_FORWARDING (ip.forwarding) Boolean: enable/disable
>>> forwarding
>>> of IP packets. Defaults to off.
>>>
>>> IPCTL_FASTFORWARDING (ip.fastforwarding) Boolean:
>>> enable/disable the
>>> use
>>> of fast IP forwarding code. Defaults to off.
>>> When
>>> fast forwarding is enabled, IP packets are
>>> for-
>>> warded directly to the appropriate network
>>> inter-
>>> face with a minimal validity checking, which
>>> greatly improves the throughput. On the
>>> other
>>> hand, they bypass the standard procedures,
>>> such
>>> as
>>> IP option processing and ipfirewall(4)
>>> checking.
>>> It is not guaranteed that every packet
>>> will be
>>> fast-forwarded.
>>>
>>
>> This quote is out of date; on current fastforwarding is purely an
>> optimization path--if the packet requires features not supported by
>> the fast path then it's processed normally.
>
>
> Maybe I should have another ristreto before asking this, but based on
> what I understand from this thread and speaking of current 7.0:
>
> a. I would set both in sysctl.conf
> net.inet.ip.forwarding=1
> net.inet.ip.fastforwarding=1
> b. There would be no "down side" in current 7.0
>
> Is this more or less correct? If so, will this posibly be the case in
> the 6.0 release also or only in current?
6.0 and 7.x share the same code so the settings are identical. As to
downside you pay a penalty if the fastforwarding code has to hand the
packet back to the "slow path". There may also be side effects from the
run-to-completion model it uses. You should test to decide if the
feature is worth enabling for your environment. I'm not sure it's had
much testing (Andre?).
Sam
More information about the freebsd-net
mailing list