]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Reapply r345274 with build fixes for 32-bit architectures.
authorae <ae@FreeBSD.org>
Tue, 19 Mar 2019 10:57:03 +0000 (10:57 +0000)
committerae <ae@FreeBSD.org>
Tue, 19 Mar 2019 10:57:03 +0000 (10:57 +0000)
commitd7634274507635e308d7c60147de65f092427b9e
tree7b90ad4e40d767c5d50b9b23303d7b4648229ae1
parent670da7d6380100ee1b982a1a7af772646f0dfbd9
Reapply r345274 with build fixes for 32-bit architectures.

  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
sbin/ipfw/ipfw.8
sbin/ipfw/ipfw2.h
sbin/ipfw/nat64lsn.c
sys/conf/files
sys/modules/ipfw_nat64/Makefile
sys/netinet6/ip_fw_nat64.h
sys/netpfil/ipfw/nat64/nat64lsn.c
sys/netpfil/ipfw/nat64/nat64lsn.h
sys/netpfil/ipfw/nat64/nat64lsn_control.c