HomeFreeBSD

Update NAT64LSN implementation:

Description

Update NAT64LSN implementation:

o most of data structures and relations were modified to be able support

large number of translation states. Now each supported protocol can
use full ports range. Ports groups now are belongs to IPv4 alias
addresses, not hosts. Each ports group can keep several states chunks.
This is controlled with new `states_chunks` config option. States
chunks allow to have several translation states for single alias address
and port, but for different destination addresses.

o by default all hash tables now use jenkins hash.
o ConcurrencyKit and epoch(9) is used to make NAT64LSN lockless on fast path.
o one NAT64LSN instance now can be used to handle several IPv6 prefixes,

special prefix "::" value should be used for this purpose when instance
is created.

o due to modified internal data structures relations, the socket opcode

that does states listing was changed.

Obtained from: Yandex LLC
MFC after: 1 month
Sponsored by: Yandex LLC

Details

Provenance
aeAuthored on
Parents
rS345273: Fix a typo introduced in r344133
Branches
Unknown
Tags
Unknown