Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Mar 2010 23:59:44 -0500
From:      David Horn <dhorn2000@gmail.com>
To:        Hiroki Sato <hrs@freebsd.org>
Cc:        freebsd-net@freebsd.org, dougb@freebsd.org, freebsd-rc@freebsd.org
Subject:   Re: Un-obsolete'ing ipv6_enable
Message-ID:  <25ff90d61003112059r2648543bn812468893fc3b19@mail.gmail.com>
In-Reply-To: <25ff90d61003110809s4cc775e9r2ff6ebee151be6f6@mail.gmail.com>
References:  <4B945AA7.6070000@FreeBSD.org> <20100309.072719.200228546.hrs@allbsd.org> <25ff90d61003082037v3519995bx7e119e9d14143db4@mail.gmail.com> <20100309.135917.161082188.hrs@allbsd.org> <25ff90d61003110809s4cc775e9r2ff6ebee151be6f6@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--001485f630826160b6048193660e
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<snip> for brevity sake
>> dh> Question 2) Assuming that people do desire consistency with allowing
>> dh> for both a global, and a per-interface setting, do you agree with
>> dh> having a global default for DHCPv4 (dhcpv4_default_enable), and for
>> dh> IPv6 slaac/accept_rtadv =A0(ipv6-slaac_default_enable), and the
>> dh> per-interface DHCPv4 (ifconfig_IF0=3D"dhcp") aka a meta configuratio=
n
>> dh> variable, and a per-interface IPv6 slaac (ifconfig_IF0=3D"slaac") ak=
a a
>> dh> meta configuration variable.
>>
>> =A0I think the global configuration can be realized by setting something
>> =A0like ifconfig_DEFAULT_<proto>=3D"AUTO" instead of adding a new global
>> =A0knobs.
>
> Yes, that is certainly one method that can work.
>
> I will put together two review versions of a diff. =A0One with backward
> compatible logic included (at least for the ipv6_enable YES/NO cases,
> and the ipv6_ifconfig_IF syntax ), and one with the backwards compat
> code removed to further this discussion.
>
<snip>

OK, now I am certain I have looked at this far too long at the moment,
but here is a stab at a working diff (actually as promised, two diffs
against -current, one without backwards compatibility logic).

Background:

Historically (8.0-RELEASE and prior), there was a global rc.conf knob
for ipv6 (ipv6_enable, default=3D"NO") that performed several functions:

a)  Enabled (or disabled) ipv6 link-local address for every interface
(auto_linklocal AND -ifdisabled)
b)  Enabled (or disabled) ipv6 SLAAC by default for every interface by
setting the global net.inet6.ip6.accept_rtadv=3D1 sysctl
c)  inherently specified utilization of a ipv6 address (AAAA) over an
ipv4 address (A) when both were available from a dns query when using
getaddrinfo()
d)  Others I can not think of at the moment ?

As well, there has always been a per-interface variable for IPv4 dhcp
(The pseudo-variable of "dhcp" on an ifconfig_IF rc.conf line), but no
global knob.

Now, I propose two new global variables:  ipv6_slaac_default_enable,
ipv4_dhcp_default_enable
and several new/updated per-interface pseudo variables: auto, noauto,
accept_rtadv, -accept_rtadv, slaac, noslaac, dhcp, nodhcp

Changelist:
1) New or updated global knob for interface configuration:
	ipv6_enable {global} =3D UNDEFINED/YES/NO, Default=3DUNDEFINED
		Old, depreciated knob for several ipv6 functions listed above (only
in backwards compatible version) Takes precedence over per-interface
setting (if it exists)
	ipv4_dhcp_default_enable {global} =3D YES/NO, Default=3DNO
		New, global knob for enabling any interface for dhcp by default that
does not have a per-interface configuration over-ride.
	ipv6_slaac_default_enable {global} =3D  YES/NO, Default=3DNO
		New, global knob for enabling any interface for ipv6 slaac by
default that does not have a per-interface configuration over-ride.
	ipv6_prefer {global} =3D YES/NO, Default=3DNO
		Removed overloading of ipv6_prefer to no longer mean default to
enable interface for ipv6 (-ifdisabled).  This global variable now
just effects rc.d/ip6addrctl behavior.  Under seperate cover, I am
proposing changing ipv6_prefer behavior to a more useful
autoconfigured default (if it can be done reliably) to eliminate the
need for the user to need to specify ipv6_prefer at all in most cases.
(Check for global ipv6 address assigned to an up interface) TBD.  Stay
tuned...

2) New or updated interface specific pseudo-variables for ifconfig_IF
and/or ifconfig_IF_ipv6:
	auto {interface-specific} =3D enable both IPv4 DHCP and IPv6 SLAAC
	noauto {interface-specific} =3D  no automatic boot-time configuration -
only slightly extended, as this already existed
	accept_rtadv {interface-specific} =3D enable SLACC via ipv6 router
advertisement Note: Also an ifconfig IF inet6 parameter
	-accept_rtadv {interface-specific} =3D disable SLAAC/ACCEPT_RTADV for
that interface Note: Also an ifconfig IF inet6 parameter
	slaac {interface-specific} =3D ALIAS for accept_rtadv, enable SLAAC via
ipv6 router advertisement
	noslaac {interface-specific} =3D ALIAS for -accept_rtadv, disable
SLAAC/ACCEPT_RTADV for that interface Note: Only really needed if
global ipv6_slaac_default_enable knob is on
	dhcp {interface-specific} =3D enable IPv4 DHCP - No change, just listed
for completeness sake
	nodhcp {interface-specific} =3D disable IPv4 DHCP Note: Only really
needed if global ipv4_dhcp_default_enable knob is on

3) On Backwards compatible version:
	ipv6_enable is UNDEFINED by default.
	If the user has ipv6_enable=3D"NO" defined, this will now DISABLE ipv6
everywhere (just like it used to)
	If the user has ipv6_enable=3D"YES" define, this will now ENABLE ipv6
everywhere (just like it used to)

4) Misc changes/fixes:
	Changed ifconfig_up() to use ipv6_autoconfif() rather than
re-checking some values for itself, and now allow
ifconfig_em0_ipv6=3D"inet6 2001:db8::1" to work with AND without
user-specified "inet6", as it used to be implied, and most recently
was required, and is now optional.
	Changed ifalias_ipv6_[up|down]() to allow with and without user
specified "inet6", and to use the ifconfig_IF_ipv6_aliasX not
ifconfig_IF_aliasX,   I can revert this change, but then the "inet6"
component would be required.  After thinking about this, it is a toss
up.
	Change ipv6_network_interfaces to default to "AUTO" just like
network_interfaces (consistency is the theme)

I am perfectly happy with renaming any of these variable/pseudo
variable names to any consensus approved names, or adding/removing
aliases, etc.  No bikesheds allowed. ;)
If anyone requires, I guess I could remove the backwards compatible
logic, but add a new global variable for people that want all
interfaces disabled for ipv6 completely.

As well, I am open to looking at the ifconfig_DEFAULT /
ifconfig_DEFAULT_ipv6 syntax rather than adding
ipv6_slaac_default_enable and ipv4_dhcp_default_enable global knobs if
consensus concurs, but I think the FOO_enable syntax is probably more
desirable.  The only thing I am really shooting for is a consistant
set of knobs and behaviors (as much as is sensible), and to allow a
less complicated configuration set for ipv6 rc.conf moving forward.

Once there is consensus, I will take a stab at updating the man page
for rc.conf as well.

Examples:

Example 1:  enable IPv4 dhcp, and IPv6 slaac on the em0 interface
(which happens to be the only interface):

In 8.0-RELEASE this would be:

ifconfig_em0=3D"dhcp"
ipv6_enable=3D"YES"

Would now be any of the following (all four are functionally identical):

ifconfig_em0=3D"auto"

or

ifconfig_em0=3D"dhcp slaac"

or

ifconfig_em0=3D"dhcp"
ifconfig_em0_ipv6=3D"slaac"

or

ifconfig_em0=3D"dhcp accept_rtadv"

As well, in the backwards compatible version:

ifconfig_em0=3D"dhcp"
ipv6_enable=3D"YES"

will still work.

Example 2:
           (wlan0)- enable IPv4 dhcp, and IPv6 link-local without slaac
           (bfe0)- disable IPv4 dhcp, and enable IPv6 slaac
	   (bfe1)- disable IPv4 dhcp, and enable IPv6 static eui64
	   (bfe2)- enable IPv4 static with no IPv6 link-local

In 8.0-RELEASE this would be not possible to disable ipv6 slaac on a
per-interface basis, so would require a custom startup script using
ndp to disable.  The rest of the configuration would be:

wlans_iwn0=3D"wlan0"
ifconfig_wlan0=3D"wpa dhcp"
ifconfig_bfe0=3D"up"
ipv6_ifconfig_bfe1=3D"2001:db8:1:: eui64"
ifconfig_bfe2=3D"inet 192.168.1.50 netmask 255.255.255.0"
ipv6_enable=3D"YES"

ndp script would be something like:
ndp -i wlan0 nud -accept_rtadv
ndp -i bfe2 disabled

Would now be:

wlans_iwn0=3D"wlan0"
ifconfig_wlan0=3D"wpa dhcp"
ifconfig_bfe0=3D"slaac"
ifconfig_bfe1_ipv6=3D"2001:db8:1:: eui64"
ifconfig_bfe2=3D"inet 192.168.1.50 netmask 255.255.255.0"
ifconfig_bfe2_ipv6=3D"ifdisabled"

I am still trying to track down one bug I have found in my testing
(related to ifconfig and eui64 when no link-local address has yet been
assigned to a down interface), and am still attempting to grok the
$_cfg usage in ifconfig_up(), and I still have several more test cases
to complete, but give it a spin (or read if you prefer), and let me
know if I have gone horribly off track.

As such, this is a work in progress.  Comments welcome.

--Thanks!

--Dave Horn

--001485f630826160b6048193660e
Content-Type: text/plain; charset=US-ASCII;
	name="ipv6-network.backcompat.diff.txt"
Content-Disposition: attachment; filename="ipv6-network.backcompat.diff.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g6oikhn20

SW5kZXg6IGV0Yy9uZXR3b3JrLnN1YnIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZXRjL25ldHdvcmsuc3Vicgko
cmV2aXNpb24gMjA1MDE5KQorKysgZXRjL25ldHdvcmsuc3Vicgkod29ya2luZyBjb3B5KQpAQCAt
OTYsNDUgKzk2LDQ3IEBACiAJIyBpbmV0NiBzcGVjaWZpYwogCWlmIGFmZXhpc3RzIGluZXQ2OyB0
aGVuCiAJCWlmIGlwdjZpZiAkMTsgdGhlbgotCQkJaWYgY2hlY2t5ZXNubyBpcHY2X2dhdGV3YXlf
ZW5hYmxlOyB0aGVuCisJCQlpZiBpcHY2X2F1dG9jb25maWYgJDE7IHRoZW4KKwkJCQlfaXB2Nl9v
cHRzPSJhY2NlcHRfcnRhZHYiCisJCQllbHNlCiAJCQkJX2lwdjZfb3B0cz0iLWFjY2VwdF9ydGFk
diIKIAkJCWZpCi0JCWVsc2UKLQkJCWlmIGNoZWNreWVzbm8gaXB2Nl9wcmVmZXI7IHRoZW4KLQkJ
CQlfaXB2Nl9vcHRzPSItaWZkaXNhYmxlZCIKLQkJCWVsc2UKLQkJCQlfaXB2Nl9vcHRzPSJpZmRp
c2FibGVkIgorCisJCQkjIGlmY29uZmlnX0lGX2lwdjYKKwkJCWlmY29uZmlnX2FyZ3M9YGlmY29u
ZmlnX2dldGFyZ3MgJDEgaXB2NmAKKwkJCWlmIFsgLW4gIiR7aWZjb25maWdfYXJnc30iIF07IHRo
ZW4KKwkJCQlpZmNvbmZpZyAkMSBpbmV0NiAtaWZkaXNhYmxlZAorCQkJCSMgQmUgbmljZSB0byB1
c2VycyAob3B0aW9uYWwgaW5ldDYpCisJCQkJY2FzZSAke2lmY29uZmlnX2FyZ3N9IGluCisJCQkJ
CWluZXQ2XCAqKQorCQkJCQkJaWZjb25maWcgJDEgJHtpZmNvbmZpZ19hcmdzfQorCQkJCQkJOzsK
KwkJCQkJKikKKwkJCQkJCWlmY29uZmlnICQxIGluZXQ2IFwKKwkJCQkJCSAke2lmY29uZmlnX2Fy
Z3N9CisJCQkJCQk7OworCQkJCWVzYWMKKwkJCQlfY2ZnPTAKIAkJCWZpCiAKLQkJCSMgYmFja3dh
cmQgY29tcGF0aWJpbGl0eTogJGlwdjZfZW5hYmxlCi0JCQljYXNlICRpcHY2X2VuYWJsZSBpbgot
CQkJW1l5XVtFZV1bU3NdKQotCQkJCV9pcHY2X29wdHM9IiR7X2lwdjZfb3B0c30gYWNjZXB0X3J0
YWR2IgotCQkJCTs7Ci0JCQllc2FjCisJCQkjIGJhY2t3YXJkIGNvbXBhdGlibGl0eTogJGlwdjZf
aWZjb25maWdfSUYKKwkJCWlmY29uZmlnX2FyZ3M9YGdldF9pZl92YXIgJDEgaXB2Nl9pZmNvbmZp
Z19JRmAKKwkJCWlmIFsgLW4gIiR7aWZjb25maWdfYXJnc30iIF07IHRoZW4KKwkJCQl3YXJuICJc
JGlwdjZfaWZjb25maWdfJDEgaXMgb2Jzb2xldGUuIiBcCisJCQkJICAgICIgIFVzZSBpZmNvbmZp
Z18kMV9pcHY2IGluc3RlYWQuIgorCQkJCWlmY29uZmlnICQxIGluZXQ2IC1pZmRpc2FibGVkCisJ
CQkJaWZjb25maWcgJDEgaW5ldDYgJHtpZmNvbmZpZ19hcmdzfQorCQkJCV9jZmc9MAorCQkJZmkK
KworCQllbHNlCisJCQlfaXB2Nl9vcHRzPSJpZmRpc2FibGVkIgogCQlmaQogCiAJCWlmIFsgLW4g
IiR7X2lwdjZfb3B0c30iIF07IHRoZW4KIAkJCWlmY29uZmlnICQxIGluZXQ2ICR7X2lwdjZfb3B0
c30KIAkJZmkKLQotCQkjIGlmY29uZmlnX0lGX2lwdjYKLQkJaWZjb25maWdfYXJncz1gaWZjb25m
aWdfZ2V0YXJncyAkMSBpcHY2YAotCQlpZiBbIC1uICIke2lmY29uZmlnX2FyZ3N9IiBdOyB0aGVu
Ci0JCQlpZmNvbmZpZyAkMSBpbmV0NiAtaWZkaXNhYmxlZAotCQkJaWZjb25maWcgJDEgJHtpZmNv
bmZpZ19hcmdzfQotCQkJX2NmZz0wCi0JCWZpCi0KLQkJIyBiYWNrd2FyZCBjb21wYXRpYmxpdHk6
ICRpcHY2X2lmY29uZmlnX0lGCi0JCWlmY29uZmlnX2FyZ3M9YGdldF9pZl92YXIgJDEgaXB2Nl9p
ZmNvbmZpZ19JRmAKLQkJaWYgWyAtbiAiJHtpZmNvbmZpZ19hcmdzfSIgXTsgdGhlbgotCQkJd2Fy
biAiXCRpcHY2X2lmY29uZmlnXyQxIGlzIG9ic29sZXRlLiIgXAotCQkJICAgICIgIFVzZSBpZmNv
bmZpZ18kMV9pcHY2IGluc3RlYWQuIgotCQkJaWZjb25maWcgJDEgaW5ldDYgLWlmZGlzYWJsZWQK
LQkJCWlmY29uZmlnICQxIGluZXQ2ICR7aWZjb25maWdfYXJnc30KLQkJCV9jZmc9MAotCQlmaQor
CQkKIAlmaQogCiAJaWYgWyAke19jZmd9IC1lcSAwIF07IHRoZW4KQEAgLTI0NCwxMSArMjQ2LDE3
IEBACiAKIAlmb3IgX2FyZyBpbiAkX3RtcGFyZ3M7IGRvCiAJCWNhc2UgJF9hcmcgaW4KKwkJW0Fh
XVtVdV1bVHRdW09vXSkgOzsKKwkJW0FhXVtDY11bQ2NdW0VlXVtQcF1bVHRdX1tScl1bVHRdW0Fh
XVtEZF1bVnZdKSA7OwogCQlbRGRdW0hoXVtDY11bUHBdKSA7OwogCQlbTm5dW09vXVtBYV1bVXVd
W1R0XVtPb10pIDs7CisJCVtObl1bT29dW0RkXVtIaF1bQ2NdW1BwXSkgOzsKKwkJW05uXVtPb11b
U3NdW0xsXVtBYV1bQWFdW0NjXSkgOzsKIAkJW05uXVtPb11bU3NdW1l5XVtObl1bQ2NdW0RkXVtI
aF1bQ2NdW1BwXSkgOzsKIAkJW1NzXVtZeV1bTm5dW0NjXVtEZF1bSGhdW0NjXVtQcF0pIDs7CisJ
CVtTc11bTGxdW0FhXVtBYV1bQ2NdKSA7OwogCQlbV3ddW1BwXVtBYV0pIDs7CisJCS1bQWFdW0Nj
XVtDY11bRWVdW1BwXVtUdF1fW1JyXVtUdF1bQWFdW0RkXVtWdl0pIDs7CiAJCSopCiAJCQlfYXJn
cz0iJF9hcmdzICRfYXJnIgogCQkJOzsKQEAgLTI4Niw2ICsyOTQsMTIgQEAKIAogCWZvciBfYXJn
IGluICRfdG1wYXJnczsgZG8KIAkJY2FzZSAkX2FyZyBpbgorCQlbTm5dW09vXVtBYV1bVXVdW1R0
XVtPb118W05uXVtPb11bRGRdW0hoXVtDY11bUHBdKQorCQkJcmV0dXJuIDEKKwkJCTs7CisJCVtB
YV1bVXVdW1R0XVtPb10pCisJCQlyZXR1cm4gMAorCQkJOzsKIAkJW0RkXVtIaF1bQ2NdW1BwXSkK
IAkJCXJldHVybiAwCiAJCQk7OwpAQCAtMjk4LDYgKzMxMiwxMCBAQAogCQllc2FjCiAJZG9uZQog
CisJaWYgY2hlY2t5ZXNubyBpcHY0X2RoY3BfZGVmYXVsdF9lbmFibGU7IHRoZW4KKwkJcmV0dXJu
IDAKKwlmaQorCiAJcmV0dXJuIDEKIH0KIApAQCAtNDEwLDYgKzQyOCwxNiBAQAogCQlyZXR1cm4g
MQogCWZpCiAKKwkjIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6ICRpcHY2X2VuYWJsZQorCWNhc2Ug
JGlwdjZfZW5hYmxlIGluCisJW1l5XVtFZV1bU3NdfFtUdF1bUnJdW1V1XVtFZV18W09vXVtObl18
MSkKKwkJcmV0dXJuIDAKKwkJOzsKKwlbTm5dW09vXXxbRmZdW0FhXVtMbF1bU3NdW0VlXXxbT29d
W0ZmXVtGZl18MCkKKwkJcmV0dXJuIDEKKwkJOzsKKwllc2FjCisKIAkjIGxvMCBpcyBhbHdheXMg
SVB2Ni1lbmFibGVkCiAJY2FzZSAkX2lmIGluCiAJbG8wKQpAQCAtNDUwLDYgKzQ3OCw3IEBACiAj
IGlwdjZfYXV0b2NvbmZpZiBpZgogIwlSZXR1cm5zIDAgaWYgdGhlIGludGVyZmFjZSBzaG91bGQg
YmUgY29uZmlndXJlZCBmb3IgSVB2NiB3aXRoCiAjCVN0YXRlbGVzcyBBZGRyZXNzIENvbmZpZ3Vy
YXRpb24sIDEgb3RoZXJ3aXNlLgorIwlDaGVja3MgcGVyLWludGVyZmFjZSBzZXR0aW5nIGZpcnN0
LCB0aGVuIGdsb2JhbCBkZWZhdWx0CiBpcHY2X2F1dG9jb25maWYoKQogewogCWxvY2FsIF9pZiBf
dG1wYXJncyBfYXJnCkBAIC00ODMsMzAgKzUxMiw3MyBAQAogCiAJIyBiYWNrd2FyZCBjb21wYXRp
YmlsaXR5OiAkaXB2Nl9lbmFibGUKIAljYXNlICRpcHY2X2VuYWJsZSBpbgotCVtZeV1bRWVdW1Nz
XSkKKwlbWXldW0VlXVtTc118W1R0XVtScl1bVXVdW0VlXXxbT29dW05uXXwxKQogCQlyZXR1cm4g
MAogCQk7OworCVtObl1bT29dfFtGZl1bQWFdW0xsXVtTc11bRWVdfFtPb11bRmZdW0ZmXXwwKQor
CQlyZXR1cm4gMQorCQk7OwogCWVzYWMKIAogCV90bXBhcmdzPWBfaWZjb25maWdfZ2V0YXJncyAk
X2lmIGlwdjZgCiAJZm9yIF9hcmcgaW4gJF90bXBhcmdzOyBkbwogCQljYXNlICRfYXJnIGluCi0J
CWFjY2VwdF9ydGFkdikKKwkJW05uXVtPb11bQWFdW1V1XVtUdF1bT29dfFtObl1bT29dW1NzXVtM
bF1bQWFdW0FhXVtDY10pCisJCQlyZXR1cm4gMQorCQkJOzsKKwkJLVtBYV1bQ2NdW0NjXVtFZV1b
UHBdW1R0XV9bUnJdW1R0XVtBYV1bRGRdW1Z2XSkKKwkJCXJldHVybiAxCisJCQk7OworCQlbQWFd
W1V1XVtUdF1bT29dfFtTc11bTGxdW0FhXVtBYV1bQ2NdKQorIAkJCXJldHVybiAwCisgCQkJOzsK
KwkJW0FhXVtDY11bQ2NdW0VlXVtQcF1bVHRdX1tScl1bVHRdW0FhXVtEZF1bVnZdKQogCQkJcmV0
dXJuIDAKIAkJCTs7CiAJCWVzYWMKIAlkb25lCisgCisJX3RtcGFyZ3M9YF9pZmNvbmZpZ19nZXRh
cmdzICRfaWZgCisgICAgICAgIGZvciBfYXJnIGluICRfdG1wYXJnczsgZG8KKyAgICAgICAgICAg
ICAgICBjYXNlICRfYXJnIGluCisJCVtObl1bT29dW0FhXVtVdV1bVHRdW09vXXxbTm5dW09vXVtT
c11bTGxdW0FhXVtBYV1bQ2NdKQorCQkJcmV0dXJuIDEKKwkJCTs7CisJCS1bQWFdW0NjXVtDY11b
RWVdW1BwXVtUdF1fW1JyXVtUdF1bQWFdW0RkXVtWdl0pCisJCQlyZXR1cm4gMQorCQkJOzsKKwkJ
W0FhXVtVdV1bVHRdW09vXXxbU3NdW0xsXVtBYV1bQWFdW0NjXSkKKyAJCQlyZXR1cm4gMAorIAkJ
CTs7CisJCVtBYV1bQ2NdW0NjXVtFZV1bUHBdW1R0XV9bUnJdW1R0XVtBYV1bRGRdW1Z2XSkKKwkJ
CXJldHVybiAwCisJCQk7OworCQllc2FjCisgICAgICAgIGRvbmUKIAotCSMgYmFja3dhcmQgY29t
cGF0aWJpbGl0eTogJGlwdjZfaWZjb25maWdfSUYKLQlfdG1wYXJncz1gZ2V0X2lmX3ZhciAkX2lm
IGlwdjZfaWZjb25maWdfSUZgCi0JZm9yIF9hcmcgaW4gJF90bXBhcmdzOyBkbwotCQljYXNlICRf
YXJnIGluCi0JCWFjY2VwdF9ydGFkdikKKyAJIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5OiAkaXB2
Nl9pZmNvbmZpZ19JRgorIAlfdG1wYXJncz1gZ2V0X2lmX3ZhciAkX2lmIGlwdjZfaWZjb25maWdf
SUZgCisgCWZvciBfYXJnIGluICRfdG1wYXJnczsgZG8KKyAJCWNhc2UgJF9hcmcgaW4KKwkJW05u
XVtPb11bQWFdW1V1XVtUdF1bT29dfFtObl1bT29dW1NzXVtMbF1bQWFdW0FhXVtDY10pCisJCQly
ZXR1cm4gMQorCQkJOzsKKwkJLVtBYV1bQ2NdW0NjXVtFZV1bUHBdW1R0XV9bUnJdW1R0XVtBYV1b
RGRdW1Z2XSkKKwkJCXJldHVybiAxCisJCQk7OworCQlbQWFdW1V1XVtUdF1bT29dfFtTc11bTGxd
W0FhXVtBYV1bQ2NdKQorIAkJCXJldHVybiAwCisgCQkJOzsKKwkJW0FhXVtDY11bQ2NdW0VlXVtQ
cF1bVHRdX1tScl1bVHRdW0FhXVtEZF1bVnZdKQogCQkJcmV0dXJuIDAKIAkJCTs7CiAJCWVzYWMK
IAlkb25lCiAKKwlpZiBjaGVja3llc25vIGlwdjZfc2xhYWNfZGVmYXVsdF9lbmFibGU7IHRoZW4K
KwkJcmV0dXJuIDAKKwlmaQorCQogCXJldHVybiAxCiB9CiAKQEAgLTU0Myw3ICs2MTUsNiBAQAog
CWlmICEgaXB2NmlmICRfaWY7IHRoZW4KIAkJcmV0dXJuIDAKIAlmaQotCiAJaWZhbGlhc191cCAk
e19pZn0gaW5ldDYgJiYgX3JldD0wCiAJaXB2Nl9wcmVmaXhfaG9zdGlkX2FkZHJfdXAgJHtfaWZ9
ICYmIF9yZXQ9MAogCWlwdjZfYWNjZXB0X3J0YWR2X3VwICR7X2lmfSAmJiBfcmV0PTAKQEAgLTcy
NSwxMiArNzk2LDE2IEBACiAJIyBpZmNvbmZpZ19JRl9hbGlhc04gd2hpY2ggc3RhcnRzIHdpdGgg
ImluZXQ2IgogCWFsaWFzPTAKIAl3aGlsZSA6IDsgZG8KLQkJaWZjb25maWdfYXJncz1gZ2V0X2lm
X3ZhciAkMSBpZmNvbmZpZ19JRl9hbGlhcyR7YWxpYXN9YAorCQlpZmNvbmZpZ19hcmdzPWBnZXRf
aWZfdmFyICQxIGlmY29uZmlnX0lGX2lwdjZfYWxpYXMke2FsaWFzfWAKIAkJY2FzZSAiJHtpZmNv
bmZpZ19hcmdzfSIgaW4KKwkJIiIpCisJCQlicmVhaworCQkJOzsKIAkJaW5ldDZcICopCiAJCQlp
ZmNvbmZpZyAkMSAke2lmY29uZmlnX2FyZ3N9IGFsaWFzICYmIF9yZXQ9MAogCQkJOzsKLQkJIiIp
CisJCSopCisJCQlpZmNvbmZpZyAkMSBpbmV0NiAke2lmY29uZmlnX2FyZ3N9IGFsaWFzICYmIF9y
ZXQ9MAogCQkJYnJlYWsKIAkJCTs7CiAJCWVzYWMKQEAgLTgxNiwxMyArODkxLDE2IEBACiAJIyBp
ZmNvbmZpZ19JRl9hbGlhc04gd2hpY2ggc3RhcnRzIHdpdGggImluZXQ2IgogCWFsaWFzPTAKIAl3
aGlsZSA6IDsgZG8KLQkJaWZjb25maWdfYXJncz1gZ2V0X2lmX3ZhciAkMSBpZmNvbmZpZ19JRl9h
bGlhcyR7YWxpYXN9YAorCQlpZmNvbmZpZ19hcmdzPWBnZXRfaWZfdmFyICQxIGlmY29uZmlnX0lG
X2lwdjZfYWxpYXMke2FsaWFzfWAKIAkJY2FzZSAiJHtpZmNvbmZpZ19hcmdzfSIgaW4KKwkJIiIp
CisJCQlicmVhaworCQkJOzsKIAkJaW5ldDZcICopCiAJCQlpZmNvbmZpZyAkMSAke2lmY29uZmln
X2FyZ3N9IC1hbGlhcyAmJiBfcmV0PTAKIAkJCTs7Ci0JCSIiKQotCQkJYnJlYWsKKwkJKikKKwkJ
CWlmY29uZmlnICQxIGluZXQ2ICR7aWZjb25maWdfYXJnc30gLWFsaWFzICYmIF9yZXQ9MAogCQkJ
OzsKIAkJZXNhYwogCQlhbGlhcz0kKCgke2FsaWFzfSArIDEpKQpJbmRleDogZXRjL2RlZmF1bHRz
L3JjLmNvbmYKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gZXRjL2RlZmF1bHRzL3JjLmNvbmYJKHJldmlzaW9uIDIw
NTAxOSkKKysrIGV0Yy9kZWZhdWx0cy9yYy5jb25mCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNiAr
MTU4LDggQEAKIGR1bW15bmV0X2VuYWJsZT0iTk8iCQkjIExvYWQgdGhlIGR1bW15bmV0KDQpIG1v
ZHVsZQogaXBfcG9ydHJhbmdlX2ZpcnN0PSJOTyIJCSMgU2V0IGZpcnN0IGR5bmFtaWNhbGx5IGFs
bG9jYXRlZCBwb3J0CiBpcF9wb3J0cmFuZ2VfbGFzdD0iTk8iCQkjIFNldCBsYXN0IGR5bmFtaWNh
bGx5IGFsbG9jYXRlZCBwb3J0CitpcHY0X2RoY3BfZGVmYXVsdF9lbmFibGU9Ik5PIgkjIFNldCB0
byBZRVMgdG8gZGVmYXVsdCBhbGwgaW50ZXJmYWNlcworCQkJCSMgdG8gYXV0b21hdGljYWxseSB1
c2UgREhDUCBmb3IgSVB2NAogaWtlX2VuYWJsZT0iTk8iCQkJIyBFbmFibGUgSUtFIGRhZW1vbiAo
dXN1YWxseSByYWNvb24gb3IgaXNha21wZCkKIGlrZV9wcm9ncmFtPSIvdXNyL2xvY2FsL3NiaW4v
aXNha21wZCIJIyBQYXRoIHRvIElLRSBkYWVtb24KIGlrZV9mbGFncz0iIgkJCSMgQWRkaXRpb25h
bCBmbGFncyBmb3IgSUtFIGRhZW1vbgpAQCAtNDM5LDggKzQ0MSwxMCBAQAogaWNtcF9ibWNhc3Rl
Y2hvPSJOTyIJIyByZXNwb25kIHRvIGJyb2FkY2FzdCBwaW5nIHBhY2tldHMKIAogIyMjIElQdjYg
b3B0aW9uczogIyMjCi1pcHY2X25ldHdvcmtfaW50ZXJmYWNlcz0ibm9uZSIJIyBMaXN0IG9mIElQ
djYgbmV0d29yayBpbnRlcmZhY2VzCitpcHY2X25ldHdvcmtfaW50ZXJmYWNlcz0iYXV0byIJIyBM
aXN0IG9mIElQdjYgbmV0d29yayBpbnRlcmZhY2VzCiAJCQkJIyAob3IgImF1dG8iIG9yICJub25l
IikuCitpcHY2X3NsYWFjX2RlZmF1bHRfZW5hYmxlPSJOTyIgICMgU2V0IHRvIFlFUyB0byBlbmFi
bGUgSVB2NiBTTEFBQy9hY2NlcHRfcnRhZHYKKwkJCQkjIG9uIGFsbCBpbnRlcmZhY2VzIGJ5IGRl
ZmF1bHQKIGlwdjZfZGVmYXVsdHJvdXRlcj0iTk8iCQkjIFNldCB0byBJUHY2IGRlZmF1bHQgZ2F0
ZXdheSAob3IgTk8pLgogI2lwdjZfZGVmYXVsdHJvdXRlcj0iMjAwMjpjMDU4OjYzMDE6OiIJIyBV
c2UgdGhpcyBmb3IgNnRvNCAoUkZDIDMwNjgpCiBpcHY2X3N0YXRpY19yb3V0ZXM9IiIJCSMgU2V0
IHRvIHN0YXRpYyByb3V0ZSBsaXN0IChvciBsZWF2ZSBlbXB0eSkuCg==
--001485f630826160b6048193660e
Content-Type: text/plain; charset=US-ASCII;
	name="ipv6-network.nobackcompat.diff.txt"
Content-Disposition: attachment; filename="ipv6-network.nobackcompat.diff.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g6oikve61

SW5kZXg6IGV0Yy9uZXR3b3JrLnN1YnIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZXRjL25ldHdvcmsuc3Vicgko
cmV2aXNpb24gMjA1MDE5KQorKysgZXRjL25ldHdvcmsuc3Vicgkod29ya2luZyBjb3B5KQpAQCAt
OTYsNDUgKzk2LDM3IEBACiAJIyBpbmV0NiBzcGVjaWZpYwogCWlmIGFmZXhpc3RzIGluZXQ2OyB0
aGVuCiAJCWlmIGlwdjZpZiAkMTsgdGhlbgotCQkJaWYgY2hlY2t5ZXNubyBpcHY2X2dhdGV3YXlf
ZW5hYmxlOyB0aGVuCisJCQlpZiBpcHY2X2F1dG9jb25maWYgJDE7IHRoZW4KKwkJCQlfaXB2Nl9v
cHRzPSJhY2NlcHRfcnRhZHYiCisJCQllbHNlCiAJCQkJX2lwdjZfb3B0cz0iLWFjY2VwdF9ydGFk
diIKIAkJCWZpCi0JCWVsc2UKLQkJCWlmIGNoZWNreWVzbm8gaXB2Nl9wcmVmZXI7IHRoZW4KLQkJ
CQlfaXB2Nl9vcHRzPSItaWZkaXNhYmxlZCIKLQkJCWVsc2UKLQkJCQlfaXB2Nl9vcHRzPSJpZmRp
c2FibGVkIgorCisJCQkjIGlmY29uZmlnX0lGX2lwdjYKKwkJCWlmY29uZmlnX2FyZ3M9YGlmY29u
ZmlnX2dldGFyZ3MgJDEgaXB2NmAKKwkJCWlmIFsgLW4gIiR7aWZjb25maWdfYXJnc30iIF07IHRo
ZW4KKwkJCQlpZmNvbmZpZyAkMSBpbmV0NiAtaWZkaXNhYmxlZAorCQkJCSMgQmUgbmljZSB0byB1
c2VycyAob3B0aW9uYWwgaW5ldDYpCisJCQkJY2FzZSAke2lmY29uZmlnX2FyZ3N9IGluCisJCQkJ
CWluZXQ2XCAqKQorCQkJCQkJaWZjb25maWcgJDEgJHtpZmNvbmZpZ19hcmdzfQorCQkJCQkJOzsK
KwkJCQkJKikKKwkJCQkJCWlmY29uZmlnICQxIGluZXQ2IFwKKwkJCQkJCSAke2lmY29uZmlnX2Fy
Z3N9CisJCQkJCQk7OworCQkJCWVzYWMKKwkJCQlfY2ZnPTAKIAkJCWZpCiAKLQkJCSMgYmFja3dh
cmQgY29tcGF0aWJpbGl0eTogJGlwdjZfZW5hYmxlCi0JCQljYXNlICRpcHY2X2VuYWJsZSBpbgot
CQkJW1l5XVtFZV1bU3NdKQotCQkJCV9pcHY2X29wdHM9IiR7X2lwdjZfb3B0c30gYWNjZXB0X3J0
YWR2IgotCQkJCTs7Ci0JCQllc2FjCisJCWVsc2UKKwkJCV9pcHY2X29wdHM9ImlmZGlzYWJsZWQi
CiAJCWZpCiAKIAkJaWYgWyAtbiAiJHtfaXB2Nl9vcHRzfSIgXTsgdGhlbgogCQkJaWZjb25maWcg
JDEgaW5ldDYgJHtfaXB2Nl9vcHRzfQogCQlmaQotCi0JCSMgaWZjb25maWdfSUZfaXB2NgotCQlp
ZmNvbmZpZ19hcmdzPWBpZmNvbmZpZ19nZXRhcmdzICQxIGlwdjZgCi0JCWlmIFsgLW4gIiR7aWZj
b25maWdfYXJnc30iIF07IHRoZW4KLQkJCWlmY29uZmlnICQxIGluZXQ2IC1pZmRpc2FibGVkCi0J
CQlpZmNvbmZpZyAkMSAke2lmY29uZmlnX2FyZ3N9Ci0JCQlfY2ZnPTAKLQkJZmkKLQotCQkjIGJh
Y2t3YXJkIGNvbXBhdGlibGl0eTogJGlwdjZfaWZjb25maWdfSUYKLQkJaWZjb25maWdfYXJncz1g
Z2V0X2lmX3ZhciAkMSBpcHY2X2lmY29uZmlnX0lGYAotCQlpZiBbIC1uICIke2lmY29uZmlnX2Fy
Z3N9IiBdOyB0aGVuCi0JCQl3YXJuICJcJGlwdjZfaWZjb25maWdfJDEgaXMgb2Jzb2xldGUuIiBc
Ci0JCQkgICAgIiAgVXNlIGlmY29uZmlnXyQxX2lwdjYgaW5zdGVhZC4iCi0JCQlpZmNvbmZpZyAk
MSBpbmV0NiAtaWZkaXNhYmxlZAotCQkJaWZjb25maWcgJDEgaW5ldDYgJHtpZmNvbmZpZ19hcmdz
fQotCQkJX2NmZz0wCi0JCWZpCisJCQogCWZpCiAKIAlpZiBbICR7X2NmZ30gLWVxIDAgXTsgdGhl
bgpAQCAtMjQ0LDExICsyMzYsMTcgQEAKIAogCWZvciBfYXJnIGluICRfdG1wYXJnczsgZG8KIAkJ
Y2FzZSAkX2FyZyBpbgorCQlbQWFdW1V1XVtUdF1bT29dKSA7OworCQlbQWFdW0NjXVtDY11bRWVd
W1BwXVtUdF1fW1JyXVtUdF1bQWFdW0RkXVtWdl0pIDs7CiAJCVtEZF1bSGhdW0NjXVtQcF0pIDs7
CiAJCVtObl1bT29dW0FhXVtVdV1bVHRdW09vXSkgOzsKKwkJW05uXVtPb11bRGRdW0hoXVtDY11b
UHBdKSA7OworCQlbTm5dW09vXVtTc11bTGxdW0FhXVtBYV1bQ2NdKSA7OwogCQlbTm5dW09vXVtT
c11bWXldW05uXVtDY11bRGRdW0hoXVtDY11bUHBdKSA7OwogCQlbU3NdW1l5XVtObl1bQ2NdW0Rk
XVtIaF1bQ2NdW1BwXSkgOzsKKwkJW1NzXVtMbF1bQWFdW0FhXVtDY10pIDs7CiAJCVtXd11bUHBd
W0FhXSkgOzsKKwkJLVtBYV1bQ2NdW0NjXVtFZV1bUHBdW1R0XV9bUnJdW1R0XVtBYV1bRGRdW1Z2
XSkgOzsKIAkJKikKIAkJCV9hcmdzPSIkX2FyZ3MgJF9hcmciCiAJCQk7OwpAQCAtMjg2LDYgKzI4
NCwxMiBAQAogCiAJZm9yIF9hcmcgaW4gJF90bXBhcmdzOyBkbwogCQljYXNlICRfYXJnIGluCisJ
CVtObl1bT29dW0FhXVtVdV1bVHRdW09vXXxbTm5dW09vXVtEZF1bSGhdW0NjXVtQcF0pCisJCQly
ZXR1cm4gMQorCQkJOzsKKwkJW0FhXVtVdV1bVHRdW09vXSkKKwkJCXJldHVybiAwCisJCQk7Owog
CQlbRGRdW0hoXVtDY11bUHBdKQogCQkJcmV0dXJuIDAKIAkJCTs7CkBAIC0yOTgsNiArMzAyLDEw
IEBACiAJCWVzYWMKIAlkb25lCiAKKwlpZiBjaGVja3llc25vIGlwdjRfZGhjcF9kZWZhdWx0X2Vu
YWJsZTsgdGhlbgorCQlyZXR1cm4gMAorCWZpCisKIAlyZXR1cm4gMQogfQogCkBAIC00MjMsMTIg
KzQzMSw2IEBACiAJCXJldHVybiAwCiAJZmkKIAotCSMgYmFja3dhcmQgY29tcGF0aWJpbGl0eTog
VHJ1ZSBpZiAkaXB2Nl9pZmNvbmZpZ19JRiBpcyBkZWZpbmVkLgotCV90bXBhcmdzPWBnZXRfaWZf
dmFyICRfaWYgaXB2Nl9pZmNvbmZpZ19JRmAKLQlpZiBbIC1uICIke190bXBhcmdzfSIgXTsgdGhl
bgotCQlyZXR1cm4gMAotCWZpCi0KIAljYXNlICIke2lwdjZfbmV0d29ya19pbnRlcmZhY2VzfSIg
aW4KIAlbQWFdW1V1XVtUdF1bT29dKQogCQlyZXR1cm4gMApAQCAtNDUwLDYgKzQ1Miw3IEBACiAj
IGlwdjZfYXV0b2NvbmZpZiBpZgogIwlSZXR1cm5zIDAgaWYgdGhlIGludGVyZmFjZSBzaG91bGQg
YmUgY29uZmlndXJlZCBmb3IgSVB2NiB3aXRoCiAjCVN0YXRlbGVzcyBBZGRyZXNzIENvbmZpZ3Vy
YXRpb24sIDEgb3RoZXJ3aXNlLgorIwlDaGVja3MgcGVyLWludGVyZmFjZSBzZXR0aW5nIGZpcnN0
LCB0aGVuIGdsb2JhbCBkZWZhdWx0CiBpcHY2X2F1dG9jb25maWYoKQogewogCWxvY2FsIF9pZiBf
dG1wYXJncyBfYXJnCkBAIC00ODEsMzIgKzQ4NCw0NiBAQAogCQk7OwogCWVzYWMKIAotCSMgYmFj
a3dhcmQgY29tcGF0aWJpbGl0eTogJGlwdjZfZW5hYmxlCi0JY2FzZSAkaXB2Nl9lbmFibGUgaW4K
LQlbWXldW0VlXVtTc10pCi0JCXJldHVybiAwCi0JCTs7Ci0JZXNhYwotCiAJX3RtcGFyZ3M9YF9p
ZmNvbmZpZ19nZXRhcmdzICRfaWYgaXB2NmAKIAlmb3IgX2FyZyBpbiAkX3RtcGFyZ3M7IGRvCiAJ
CWNhc2UgJF9hcmcgaW4KLQkJYWNjZXB0X3J0YWR2KQorCQlbTm5dW09vXVtBYV1bVXVdW1R0XVtP
b118W05uXVtPb11bU3NdW0xsXVtBYV1bQWFdW0NjXSkKKwkJCXJldHVybiAxCisJCQk7OworCQkt
W0FhXVtDY11bQ2NdW0VlXVtQcF1bVHRdX1tScl1bVHRdW0FhXVtEZF1bVnZdKQorCQkJcmV0dXJu
IDEKKwkJCTs7CisJCVtBYV1bVXVdW1R0XVtPb118W1NzXVtMbF1bQWFdW0FhXVtDY10pCisgCQkJ
cmV0dXJuIDAKKyAJCQk7OworCQlbQWFdW0NjXVtDY11bRWVdW1BwXVtUdF1fW1JyXVtUdF1bQWFd
W0RkXVtWdl0pCiAJCQlyZXR1cm4gMAogCQkJOzsKIAkJZXNhYwogCWRvbmUKLQotCSMgYmFja3dh
cmQgY29tcGF0aWJpbGl0eTogJGlwdjZfaWZjb25maWdfSUYKLQlfdG1wYXJncz1gZ2V0X2lmX3Zh
ciAkX2lmIGlwdjZfaWZjb25maWdfSUZgCi0JZm9yIF9hcmcgaW4gJF90bXBhcmdzOyBkbwotCQlj
YXNlICRfYXJnIGluCi0JCWFjY2VwdF9ydGFkdikKKyAKKwlfdG1wYXJncz1gX2lmY29uZmlnX2dl
dGFyZ3MgJF9pZmAKKyAgICAgICAgZm9yIF9hcmcgaW4gJF90bXBhcmdzOyBkbworICAgICAgICAg
ICAgICAgIGNhc2UgJF9hcmcgaW4KKwkJW05uXVtPb11bQWFdW1V1XVtUdF1bT29dfFtObl1bT29d
W1NzXVtMbF1bQWFdW0FhXVtDY10pCisJCQlyZXR1cm4gMQorCQkJOzsKKwkJLVtBYV1bQ2NdW0Nj
XVtFZV1bUHBdW1R0XV9bUnJdW1R0XVtBYV1bRGRdW1Z2XSkKKwkJCXJldHVybiAxCisJCQk7Owor
CQlbQWFdW1V1XVtUdF1bT29dfFtTc11bTGxdW0FhXVtBYV1bQ2NdKQorIAkJCXJldHVybiAwCisg
CQkJOzsKKwkJW0FhXVtDY11bQ2NdW0VlXVtQcF1bVHRdX1tScl1bVHRdW0FhXVtEZF1bVnZdKQog
CQkJcmV0dXJuIDAKIAkJCTs7CiAJCWVzYWMKLQlkb25lCisgICAgICAgIGRvbmUKIAorCWlmIGNo
ZWNreWVzbm8gaXB2Nl9zbGFhY19kZWZhdWx0X2VuYWJsZTsgdGhlbgorCQlyZXR1cm4gMAorCWZp
CisJCiAJcmV0dXJuIDEKIH0KIApAQCAtNTQzLDcgKzU2MCw2IEBACiAJaWYgISBpcHY2aWYgJF9p
ZjsgdGhlbgogCQlyZXR1cm4gMAogCWZpCi0KIAlpZmFsaWFzX3VwICR7X2lmfSBpbmV0NiAmJiBf
cmV0PTAKIAlpcHY2X3ByZWZpeF9ob3N0aWRfYWRkcl91cCAke19pZn0gJiYgX3JldD0wCiAJaXB2
Nl9hY2NlcHRfcnRhZHZfdXAgJHtfaWZ9ICYmIF9yZXQ9MApAQCAtNzI1LDMwICs3NDEsMTcgQEAK
IAkjIGlmY29uZmlnX0lGX2FsaWFzTiB3aGljaCBzdGFydHMgd2l0aCAiaW5ldDYiCiAJYWxpYXM9
MAogCXdoaWxlIDogOyBkbwotCQlpZmNvbmZpZ19hcmdzPWBnZXRfaWZfdmFyICQxIGlmY29uZmln
X0lGX2FsaWFzJHthbGlhc31gCisJCWlmY29uZmlnX2FyZ3M9YGdldF9pZl92YXIgJDEgaWZjb25m
aWdfSUZfaXB2Nl9hbGlhcyR7YWxpYXN9YAogCQljYXNlICIke2lmY29uZmlnX2FyZ3N9IiBpbgot
CQlpbmV0NlwgKikKLQkJCWlmY29uZmlnICQxICR7aWZjb25maWdfYXJnc30gYWxpYXMgJiYgX3Jl
dD0wCi0JCQk7OwogCQkiIikKIAkJCWJyZWFrCiAJCQk7OwotCQllc2FjCi0JCWFsaWFzPSQoKCR7
YWxpYXN9ICsgMSkpCi0JZG9uZQotCi0JIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5OiBpcHY2X2lm
Y29uZmlnX0lGX2FsaWFzTi4KLQlhbGlhcz0wCi0Jd2hpbGUgOiA7IGRvCi0JCWlmY29uZmlnX2Fy
Z3M9YGdldF9pZl92YXIgJDEgaXB2Nl9pZmNvbmZpZ19JRl9hbGlhcyR7YWxpYXN9YAotCQljYXNl
ICIke2lmY29uZmlnX2FyZ3N9IiBpbgotCQkiIikKLQkJCWJyZWFrCisJCWluZXQ2XCAqKQorCQkJ
aWZjb25maWcgJDEgJHtpZmNvbmZpZ19hcmdzfSBhbGlhcyAmJiBfcmV0PTAKIAkJCTs7CiAJCSop
CiAJCQlpZmNvbmZpZyAkMSBpbmV0NiAke2lmY29uZmlnX2FyZ3N9IGFsaWFzICYmIF9yZXQ9MAot
CQkJd2FybiAiXCRpcHY2X2lmY29uZmlnXyQxX2FsaWFzJHthbGlhc30gaXMgb2Jzb2xldGUuIiBc
Ci0JCQkgICAgIiAgVXNlIGlmY29uZmlnXyQxX2FsaWFzTiBpbnN0ZWFkLiIKKwkJCWJyZWFrCiAJ
CQk7OwogCQllc2FjCiAJCWFsaWFzPSQoKCR7YWxpYXN9ICsgMSkpCkBAIC04MTYsMzAgKzgxOSwx
NiBAQAogCSMgaWZjb25maWdfSUZfYWxpYXNOIHdoaWNoIHN0YXJ0cyB3aXRoICJpbmV0NiIKIAlh
bGlhcz0wCiAJd2hpbGUgOiA7IGRvCi0JCWlmY29uZmlnX2FyZ3M9YGdldF9pZl92YXIgJDEgaWZj
b25maWdfSUZfYWxpYXMke2FsaWFzfWAKKwkJaWZjb25maWdfYXJncz1gZ2V0X2lmX3ZhciAkMSBp
ZmNvbmZpZ19JRl9pcHY2X2FsaWFzJHthbGlhc31gCiAJCWNhc2UgIiR7aWZjb25maWdfYXJnc30i
IGluCi0JCWluZXQ2XCAqKQotCQkJaWZjb25maWcgJDEgJHtpZmNvbmZpZ19hcmdzfSAtYWxpYXMg
JiYgX3JldD0wCi0JCQk7OwogCQkiIikKIAkJCWJyZWFrCiAJCQk7OwotCQllc2FjCi0JCWFsaWFz
PSQoKCR7YWxpYXN9ICsgMSkpCi0JZG9uZQotCi0JIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5OiBp
cHY2X2lmY29uZmlnX0lGX2FsaWFzTi4KLQlhbGlhcz0wCi0Jd2hpbGUgOiA7IGRvCi0JCWlmY29u
ZmlnX2FyZ3M9YGdldF9pZl92YXIgJDEgaXB2Nl9pZmNvbmZpZ19JRl9hbGlhcyR7YWxpYXN9YAot
CQljYXNlICIke2lmY29uZmlnX2FyZ3N9IiBpbgotCQkiIikKLQkJCWJyZWFrCisJCWluZXQ2XCAq
KQorCQkJaWZjb25maWcgJDEgJHtpZmNvbmZpZ19hcmdzfSAtYWxpYXMgJiYgX3JldD0wCiAJCQk7
OwogCQkqKQogCQkJaWZjb25maWcgJDEgaW5ldDYgJHtpZmNvbmZpZ19hcmdzfSAtYWxpYXMgJiYg
X3JldD0wCi0JCQl3YXJuICJcJGlwdjZfaWZjb25maWdfJDFfYWxpYXMke2FsaWFzfSBpcyBvYnNv
bGV0ZS4iIFwKLQkJCSAgICAiICBVc2UgaWZjb25maWdfJDFfYWxpYXNOIGluc3RlYWQuIgogCQkJ
OzsKIAkJZXNhYwogCQlhbGlhcz0kKCgke2FsaWFzfSArIDEpKQpJbmRleDogZXRjL3JjLmQvbmV0
aWYKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gZXRjL3JjLmQvbmV0aWYJKHJldmlzaW9uIDIwNTAxOSkKKysrIGV0
Yy9yYy5kL25ldGlmCSh3b3JraW5nIGNvcHkpCkBAIC00MSw4ICs0MSw2IEBACiBleHRyYV9jb21t
YW5kcz0iY2xvbmV1cCBjbG9uZWRvd24iCiBjbWRpZm49CiAKLXNldF9yY3Zhcl9vYnNvbGV0ZSBp
cHY2X2VuYWJsZSBpcHY2X3ByZWZlcgotCiBuZXR3b3JrX3N0YXJ0KCkKIHsKIAkjIFNldCB0aGUg
bGlzdCBvZiBpbnRlcmZhY2VzIHRvIHdvcmsgb24uCkluZGV4OiBldGMvcmMuZC9pcDZhZGRyY3Rs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGV0Yy9yYy5kL2lwNmFkZHJjdGwJKHJldmlzaW9uIDIwNTAxOSkKKysr
IGV0Yy9yYy5kL2lwNmFkZHJjdGwJKHdvcmtpbmcgY29weSkKQEAgLTIwLDggKzIwLDYgQEAKIHBy
ZWZlcl9pcHY2X2NtZD0iaXA2YWRkcmN0bF9wcmVmZXJfaXB2NiIKIHByZWZlcl9pcHY0X2NtZD0i
aXA2YWRkcmN0bF9wcmVmZXJfaXB2NCIKIAotc2V0X3JjdmFyX29ic29sZXRlIGlwdjZfZW5hYmxl
IGlwdjZfcHJlZmVyCi0KIGlwNmFkZHJjdGxfcHJlZmVyX2lwdjYoKQogewogCWFmZXhpc3RzIGlu
ZXQ2IHx8IHJldHVybiAwCkluZGV4OiBldGMvZGVmYXVsdHMvcmMuY29uZgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBldGMvZGVmYXVsdHMvcmMuY29uZgkocmV2aXNpb24gMjA1MDE5KQorKysgZXRjL2RlZmF1bHRz
L3JjLmNvbmYJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw2ICsxNTgsOCBAQAogZHVtbXluZXRfZW5h
YmxlPSJOTyIJCSMgTG9hZCB0aGUgZHVtbXluZXQoNCkgbW9kdWxlCiBpcF9wb3J0cmFuZ2VfZmly
c3Q9Ik5PIgkJIyBTZXQgZmlyc3QgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHBvcnQKIGlwX3BvcnRy
YW5nZV9sYXN0PSJOTyIJCSMgU2V0IGxhc3QgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHBvcnQKK2lw
djRfZGhjcF9kZWZhdWx0X2VuYWJsZT0iTk8iCSMgU2V0IHRvIFlFUyB0byBkZWZhdWx0IGFsbCBp
bnRlcmZhY2VzCisJCQkJIyB0byBhdXRvbWF0aWNhbGx5IHVzZSBESENQIGZvciBJUHY0CiBpa2Vf
ZW5hYmxlPSJOTyIJCQkjIEVuYWJsZSBJS0UgZGFlbW9uICh1c3VhbGx5IHJhY29vbiBvciBpc2Fr
bXBkKQogaWtlX3Byb2dyYW09Ii91c3IvbG9jYWwvc2Jpbi9pc2FrbXBkIgkjIFBhdGggdG8gSUtF
IGRhZW1vbgogaWtlX2ZsYWdzPSIiCQkJIyBBZGRpdGlvbmFsIGZsYWdzIGZvciBJS0UgZGFlbW9u
CkBAIC00MzksOCArNDQxLDEwIEBACiBpY21wX2JtY2FzdGVjaG89Ik5PIgkjIHJlc3BvbmQgdG8g
YnJvYWRjYXN0IHBpbmcgcGFja2V0cwogCiAjIyMgSVB2NiBvcHRpb25zOiAjIyMKLWlwdjZfbmV0
d29ya19pbnRlcmZhY2VzPSJub25lIgkjIExpc3Qgb2YgSVB2NiBuZXR3b3JrIGludGVyZmFjZXMK
K2lwdjZfbmV0d29ya19pbnRlcmZhY2VzPSJhdXRvIgkjIExpc3Qgb2YgSVB2NiBuZXR3b3JrIGlu
dGVyZmFjZXMKIAkJCQkjIChvciAiYXV0byIgb3IgIm5vbmUiKS4KK2lwdjZfc2xhYWNfZGVmYXVs
dF9lbmFibGU9Ik5PIiAgIyBTZXQgdG8gWUVTIHRvIGVuYWJsZSBJUHY2IFNMQUFDL2FjY2VwdF9y
dGFkdgorCQkJCSMgb24gYWxsIGludGVyZmFjZXMgYnkgZGVmYXVsdAogaXB2Nl9kZWZhdWx0cm91
dGVyPSJOTyIJCSMgU2V0IHRvIElQdjYgZGVmYXVsdCBnYXRld2F5IChvciBOTykuCiAjaXB2Nl9k
ZWZhdWx0cm91dGVyPSIyMDAyOmMwNTg6NjMwMTo6IgkjIFVzZSB0aGlzIGZvciA2dG80IChSRkMg
MzA2OCkKIGlwdjZfc3RhdGljX3JvdXRlcz0iIgkJIyBTZXQgdG8gc3RhdGljIHJvdXRlIGxpc3Qg
KG9yIGxlYXZlIGVtcHR5KS4K
--001485f630826160b6048193660e--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?25ff90d61003112059r2648543bn812468893fc3b19>