HomeFreeBSD

Bring in some last changes in NAT64 implementation:

Description

Bring in some last changes in NAT64 implementation:

o Modify ipfw(8) to be able set any prefix6 not just Well-Known,

and also show configured prefix6;

o relocate some definitions and macros into proper place;
o convert nat64_debug and nat64_allow_private variables to be

VNET-compatible;

o add struct nat64_config that keeps generic configuration needed

to NAT64 code;

o add nat64_check_prefix6() function to check validness of specified

by user IPv6 prefix according to RFC6052;

o use nat64_check_private_ip4() and nat64_embed_ip4() functions

instead of nat64_get_ip4() and nat64_set_ip4() macros. This allows
to use any configured IPv6 prefixes that are allowed by RFC6052;

o introduce NAT64_WKPFX flag, that is set when IPv6 prefix is

Well-Known IPv6 prefix. It is used to reduce overhead to check this;

o modify nat64lsn_cfg and nat64stl_cfg structures to use nat64_config

structure. And respectivelly modify the rest of code;

o remove now unused ro argument from nat64_output() function;
o remove __FreeBSD_version ifdef, NAT64 was not merged to older versions;
o add commented -DIPFIREWALL_NAT64_DIRECT_OUTPUT flag to module's Makefile

as example.

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

Details

Provenance
aeAuthored on
Parents
rS333402: MFC r333182:
Branches
Unknown
Tags
Unknown