From c97dcfd03fccd8bfc011a26a2cbc62b4e6fa52ad Mon Sep 17 00:00:00 2001 From: Yamato Tanaka Date: Thu, 16 Mar 2023 18:15:34 +0900 Subject: [PATCH] doc: state that O flag can be 0 in dhcpv6-stateful The current document states that O flag will be 1 when ipv6_ra_mode is dhcpv6_stateful, but the actual implementations of both ml2/OVS and ml2/OVN set O flag to 0 according to the following implementations: ML2/OVS https://github.com/openstack/neutron/blob/f545c002dc699f849026ccd1bad403b2933373aa/neutron/agent/linux/ra.py#L53-L55 ML2/OVN https://github.com/ovn-org/ovn/blob/a5238e6234d17e119dca952d9e43c36dce057d5e/controller/pinctrl.c#L3733-L3734 https://github.com/ovn-org/ovn/blob/a5238e6234d17e119dca952d9e43c36dce057d5e/lib/actions.c#L3349-L3350 This actual behavior looks correct because O flag can be either 1 or 0 when M flag is 1, according to the following statement of RFC 4861: https://www.rfc-editor.org/rfc/rfc4861#section-4.2 If the M flag is set, the O flag is redundant and can be ignored because DHCPv6 will return all available configuration information. To make consistency between the documet and actually behavior, this commit changes the document to state that O flag can be either 1 or 0 when ipv6_ra_mode is dhcpv6_stateful. Closes-Bug: #2011687 Change-Id: Id61031d7e707d0ba7b007bae0c9e0f59b8b40f8b --- doc/source/admin/config-ipv6.rst | 34 +++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/doc/source/admin/config-ipv6.rst b/doc/source/admin/config-ipv6.rst index f0f1c0cb967..65b5fb9a415 100644 --- a/doc/source/admin/config-ipv6.rst +++ b/doc/source/admin/config-ipv6.rst @@ -114,7 +114,7 @@ ipv6_ra_mode and ipv6_address_mode combinations - Not currently implemented in the reference implementation. * - dhcpv6-stateful - *N/S* - - 0,1,1 + - 0,1,0 - Off - Not currently implemented in the reference implementation. * - dhcpv6-stateless @@ -129,7 +129,7 @@ ipv6_ra_mode and ipv6_address_mode combinations - Guest instance obtains IPv6 address from OpenStack managed radvd using SLAAC. * - dhcpv6-stateful - dhcpv6-stateful - - 0,1,1 + - 0,1,0 - Off - Guest instance obtains IPv6 address from dnsmasq using DHCPv6 stateful and optional info from dnsmasq using DHCPv6. @@ -175,6 +175,20 @@ ipv6_ra_mode and ipv6_address_mode combinations *M - Managed Address Configuration Flag,* *O - Other Configuration Flag* +.. note:: + + If the M flag is set to 1, the O flag can be either 1 or 0. + This is because the O flag can be ignored when the M flag is set to 1, + as mentioned in `RFC 4861 `_ + below: + + "If the M flag is set, the O flag is redundant and + can be ignored because DHCPv6 will return all + available configuration information." + + For this reason, the neutron-generated advertisements will have the M flag + set to 1 and the O flag set to 0. + Project network considerations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -344,7 +358,7 @@ addresses and additional network information through DHCPv6. * Autonomous Address Configuration Flag = 0 * Managed Address Configuration Flag = 1 -* Other Configuration Flag = 1 +* Other Configuration Flag = 0 .. note:: @@ -352,6 +366,20 @@ addresses and additional network information through DHCPv6. not succeed for instances since no Router Advertisement messages will be generated. +.. note:: + + If the M flag is set to 1, the O flag can be either 1 or 0. + This is because the O flag can be ignored when the M flag is set to 1, + as mentioned in `RFC 4861 `_ + below: + + "If the M flag is set, the O flag is redundant and + can be ignored because DHCPv6 will return all + available configuration information." + + For this reason, the neutron-generated advertisements will have the M flag + set to 1 and the O flag set to 0. + Router support ~~~~~~~~~~~~~~