[IPv6]Re: Suggested RA lifetime defaults

Tim Chown <Tim.Chown@jisc.ac.uk> Thu, 27 March 2025 15:07 UTC

Return-Path: <Tim.Chown@jisc.ac.uk>
X-Original-To: ipv6@mail2.ietf.org
Delivered-To: ipv6@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 781111339DBE; Thu, 27 Mar 2025 08:07:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.095
X-Spam-Level:
X-Spam-Status: No, score=-2.095 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_NONE=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=jisc.ac.uk
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id I1CZzd00AhHB; Thu, 27 Mar 2025 08:07:39 -0700 (PDT)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2096.outbound.protection.outlook.com [40.107.20.96]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 308E51339DAF; Thu, 27 Mar 2025 08:07:38 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gBlJhuPxMPXavkTs4Hkd2ZtqHGWnsqvT84+Kuz918abSnGXfJNqgeL1Sm6X62RtpaVLAvcZPUTN4GFvrucn9yEfTRFaHuPBAT44GVGigbiV6FHVrNTfW1fYntZVSl902OVgKGcVd4SrKNI0B8ySo7ot2FgNy/0Y65UIBDCG6cp/Tid9AFG8QyRSQd3S+F7m0fivU0vTixtrRxW9O4qWxEnVWYl45ecaa3yowZGsa5r/Y8M67pcm3K5waHqMmAZUTLsaOyocvmxSSAKGQFWRAlXWrGggwdidL8d80UAuSwTOOzw6i0ZVlqQXHoyduKC0g+Ns78j5gIfaQiEmhS8T4lw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=oC3u0ho7qcQCmL1ADNHTsHf00LIEdEzO7f9LdBtCrXo=; b=vIC2wWHWEC9LopYyrXbU1TwNRfR3zn23QgKoJyf1N+HKMzeNx6l9IlsfnEkkMRlsvTUuTHY3hJMavrToz4+jKr+27rmaI3sxUbGa4PutZ8dL/+8ehdKlW913cmGYqaXaN9aJvD+zwqRYFK0KxZZauFNN9hyQ1D5Btko3qXv4RYUpBSx0eCp8iRyj4lmNqPCqYzl0JQdJnQyFQdpxseEDddBe0wJzUKWwBqCBv3SAh0v6tcy9nFUMA7EmcyVsTVaO0bPsGlKBKugdVn7uzW7LXQTjX7KQLvsnVb4AHp/583TrzeXWluSTzc4isiW8d2KWzxtsQ2j/ISe7PDoB7JD6jA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=jisc.ac.uk; dmarc=pass action=none header.from=jisc.ac.uk; dkim=pass header.d=jisc.ac.uk; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jisc.ac.uk; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oC3u0ho7qcQCmL1ADNHTsHf00LIEdEzO7f9LdBtCrXo=; b=OIUVTqrNjnFuBethyTL8eozKWA2wVne3LVBYtnmucb0kDumpESuzeBhuTDDmoZ66GSE6txpgqV8idVmEEIVE8uCNDZ3umLbEbgdfTws2yUbRW7MmSmOpr5JohDD/SaFDrV/WOcz0LxKnUCxd/NRbq/EgIs1mt8V5IO5J3hxIBDpScBjL5M5zMELO1/AkZei0G0y7KOdA+nqD3u0cvRSaGCItq6lDyc4/e44NP7spNAeHByyXqmETQg5luJB4bSLMLGkyaim6eWfZ4aTo/KjFyXC8vI3BDMwT5BhlD0FiJNRyNCj+H+HpRZ6seXJzSmo2suU5O//KQrvBYnWiDJ2aLw==
Received: from DB9PR07MB7771.eurprd07.prod.outlook.com (2603:10a6:10:2a6::15) by VI1PR07MB6351.eurprd07.prod.outlook.com (2603:10a6:800:142::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Thu, 27 Mar 2025 15:07:36 +0000
Received: from DB9PR07MB7771.eurprd07.prod.outlook.com ([fe80::715a:654:afc1:17f2]) by DB9PR07MB7771.eurprd07.prod.outlook.com ([fe80::715a:654:afc1:17f2%5]) with mapi id 15.20.8534.043; Thu, 27 Mar 2025 15:07:36 +0000
From: Tim Chown <Tim.Chown@jisc.ac.uk>
To: Maciej Żenczykowski <maze@google.com>, IETF IPv6 Mailing List <ipv6@ietf.org>
Thread-Topic: [IPv6]Re: Suggested RA lifetime defaults
Thread-Index: AQHbmj/cxGrADYhVPk65eMn7xNLOI7N9S36AgAADqYCAAAEggIAEtilUgAPA/wCAAVdqgw==
Date: Thu, 27 Mar 2025 15:07:36 +0000
Message-ID: <DB9PR07MB77719D272D7F270D95723B36D6A12@DB9PR07MB7771.eurprd07.prod.outlook.com>
References: <CAKD1Yr31OgRxA9mNPm12td62s4g7=7rQLWqhnEh7zBQ746oZeg@mail.gmail.com> <10AC956F-5071-4089-8ED7-F25AF36FDD06@fugue.com> <CAKD1Yr0XCncZvMvUxr=toiN21jmaXe02k8xp=+ifOSE0X2a-6w@mail.gmail.com> <A7A8D1E3-8A62-48C5-B06A-61EDC814CA76@fugue.com> <CAKD1Yr0xonoWGDhDv1kNiumXJyQcEHN0024O=w3ceKfe1Zug+A@mail.gmail.com> <DB9PR07MB777130A5A4A7001F9C56EC67D6A42@DB9PR07MB7771.eurprd07.prod.outlook.com> <CANP3RGdMzbnEorDC9E_M6yw=DG6Y2bDTbJrP-G5Fg3MKabZjHw@mail.gmail.com>
In-Reply-To: <CANP3RGdMzbnEorDC9E_M6yw=DG6Y2bDTbJrP-G5Fg3MKabZjHw@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_190374fc-c2b5-4c8e-bee8-6305ebc1550a_Enabled=True;MSIP_Label_190374fc-c2b5-4c8e-bee8-6305ebc1550a_SiteId=48f9394d-8a14-4d27-82a6-f35f12361205;MSIP_Label_190374fc-c2b5-4c8e-bee8-6305ebc1550a_SetDate=2025-03-27T15:07:35.0331065Z;MSIP_Label_190374fc-c2b5-4c8e-bee8-6305ebc1550a_Name=Private - External;MSIP_Label_190374fc-c2b5-4c8e-bee8-6305ebc1550a_ContentBits=0;MSIP_Label_190374fc-c2b5-4c8e-bee8-6305ebc1550a_Method=Privileged
x-ms-reactions: allow
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=jisc.ac.uk;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB9PR07MB7771:EE_|VI1PR07MB6351:EE_
x-ms-office365-filtering-correlation-id: e7500a72-1b4c-4571-74ea-08dd6d411c04
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|8096899003|7053199007|38070700018;
x-microsoft-antispam-message-info: uJOiPRhuN55mdpOxOkj452Dz6pPNfvketyNSOgiFrJje93oh2ZXChnlLBLNNCgp+7QWMoK4bLkl748CMP1w+b/lKoC7jxlfSlP8sM3kiHm7uHHhHQkwTnwZ+BXw3A0OQ9SBK47cACnVtbarmBwKBe+4ipNoeaWj8+/mPT6p/P23rpj9PkmKV4VqVnhZdr7yt/S1yZwI/Og8LBE6LGa2Il9Q708hcQC+4IjZk3BLinH3LERjSb2u64iD/mNOru07B5/G4HkVtO2vGm3V3HDh2UAlKOvTtAwB4oNAghreaD/95Iln/25QHyDunh2EJ2Q3vpxy0Wim2JIWNvIfUWbITREZHlJZJrAX/DKoVv6fDBUQbBHUOw45Gy+TdOXbfxsKeu+18Y4xaSSYnOLfL+hE/tSVVCnx4/zlynVmMB5GbZ7ufpQJgfiCT0RlGrzt5lS+GlcqdFSPSiF6WCvz3awlPBcpphRkX+fKiM/Ik09QxzuYMFqT7Wm15mHvJYEGY8SrmJuG/CB4+z/21UNp9iigAP1Jv9NaURL7cOR1bOW/7FsnRbkQOL46PZ+cLSNjd+OrH0XlcdNhnD7CUGy7oE8OWqpT5lgzOs59mhgqoRGj6Uz01KO01jhHVgUVe9xbP4bOXnq4zngt2FYfJiAhBNvPsjo76qFM6/cXfKPtRuBhWvkyRujPI2wjlcA7iyYJehCmKTBFbYwInpaPWSDp1NNHFs9bvqQqJJo6okEM92o6q1TEzbRl6Xw6YabvCT8lW7AIAGtzPbFXnzkqus1JtPNp1jnNdUmGo9k988WhIrE4c5qYxTq9+Sw7itDm1D+LXwc0S9ygGgToe1a32Q4987TMXocMO6DShgQr8OZ6WqHs6Yd12e31BN2UEC5yx9UZ3Kv7MYB3okl/Eeebk2y89/s8BwnNYDDlVXGjyaDwT2VWFKho+iuqli7stjOyKzh7mC+chyFLKyPrEx0XoW8oKc/++U80E7BmAm6+DGgDryTKrljKSlsaDYidqOgKXosSgijkmwZrEaiJglK6Y6uNuSXkdwiyy8f4YDXEz29Zbr85X2LQVrNc+frz9rTI3L5g9ZD/Oi+2yguvyyVSwfX/smTQqmoKmn0oWx/OX5kkoVaZNdcNnZzetX8k754b9ZM0/fn2NNV0oDG8K21uQOECSzV4XKKsZhSaeyvwPqCkRSEIfi43DrZp+Bux6B9X2s28Vn2aABm30cxpuniVoFkbuf1BvdyjLstoulScW5k6pdy0hPAeVYHPeB43HkkYxxSW4KgQg39MAWglVwHW7uQpblDaodskEUG7Jnxz7MK0JkT9YTXV9Ovpjdvd8a97QBPg46dIiMfJyHcQh6fttQU17auEVvBqCNFQ/8OLdDQAhmpjZJGZbR0J0O3yRWKyjQZwsWRrQPvUQA4HRLaf8qqeWE3JAkrhPbAYGeQVB1OCEG1BrrZoG//aSj57silTEpDFcbpSFKWu5BZ9w3jaKGyBgUpsnBA==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR07MB7771.eurprd07.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(8096899003)(7053199007)(38070700018);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: Tr5IpPJvhHnoHLOWLaNcFoa8eqtfD/sW7XGpHm5u8OWCcdgSQ4bslO1weT7ue5J4dBouexBDihxdpQ4Kg0IG6YuLBHWTrOPKWOu0yQtdE5CMtEkiVzZkoY5UD5DFNEPYNrciKOZtsZPMk4xVCYZA7ll6yRPXzKLgBbltSnP62pR72w7ECmKQsBkOxb3EIQhk9nK3IKBOhxc8zKBfO39571kYM272Ln/rPDfpkU6kJifQkNNkSKnXBBZDPTgsFGNdzHzNTNnzA5flVUAtzHSAQJacSWv0KfQwfyZqQ84A7HXNQdSTZ9/ijmb+bXy5cuCqsbqJzw1+PT6/GwSnCq1dI2XeXmEC1Virw3g699BvkN6GfzrRoBwaVNMW2oRyvi0gMjuWN6w4yMu/xSUjO8EEG1cv9k0lM5yUgEz4Ci2gs6Z6TjHbohJNs2X9QgbOZrKAwEveKsKlad+YhoprFroFhWzXuZbZXbT4EeeQEPBRAFnC9SOKTTwFlc9g3bgGzO1M/ndVPBhcFupbvlIai0sQB30k6DyPGcPYelBgq1zrmjPZWu2zRG+log4bP1KSe47OJCWvFBOVMe09bW/KyQK1vHSfDyGJ0PqQjoqPxfUlKtJjdfa92oFBtQjPVqI4GA+aIp2rt0mNeo2vkioTkin8Umzl15jtQS5USiiPNK8F6DZ+8AhSBm/KR3dF7ZyZWq1mVsiPR1I0/mHyPaDmLWEpZtxKccoQmlJLeu34/U/YdS4dCmgYKQLuwNd66I34NgkmG20XI9PGWoC99JYCFS1BsL7LcxL2hQDSG9EmRAZRDsM0GCUtsHM9eBVhFlzQteKAaq0QWWGUu+aff2R/XXasUGg8p0U0Y1XxuHH91ni9DU3MjRNX4se8GluSh2XRDpjRrQh80Oy7//6bOAXqbtkzvQiEESG93jQeHwpRkpAdKFEltPP4wiukD5PQKl+TR7B2FXB8LEBCUMlmDRdWyDcv5PjktEwcL4wn3RzG3uTCyuGtaQIoazQA+DadEO+2QsrFwPNXaLZrABKhJh271coOrsk4jVpGFcI0lJmIcmMaNBvk8/N0ipVwtLXepKgng/uX6Y/SoFU8fC7vY47nqmF/a9ui52n54zh55AbfCMxb0KE5uw6TZxs0jSuZYbQz2ksstOxolGH0rl7GuD20F/ZL5krtUQRz73ORme1lt7EVZIVvRwxYNmLDCUdqedhJJPcXW7VEHHIkQn2KrCaKYjy9UTPrY5s/wXW7hZLKeQ83zqRGoOLi4jpTnsuwhBno4uECXI06bHIFP1tVdwalM5+xxwiyXE4eVCmEiFVTCxACOnyR5FyyZ26W9f5KtWt4a59x5Gqo4q71VqBmCat+WtBWfkk71sSo85lEHOr11ck2pkCBh8dkvCcq+YgfPwEpjHXroxi7rz0M0lQGBfCj/aVagOT31+vgwUc/n3KelhT99BhI71UT4+bCda2ZaaydA3xbsTILzWlVyIhbtFvTo4nfJLZNc/r7LkF0ZUGzE7TF09q48c8tsxqTKe5CQHbN6AB4p6FwiHi4VFJKsJyDG90wLTCmA3gO6zHiJ54Okmv/tmw=
Content-Type: multipart/alternative; boundary="_000_DB9PR07MB77719D272D7F270D95723B36D6A12DB9PR07MB7771eurp_"
MIME-Version: 1.0
X-OriginatorOrg: jisc.ac.uk
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB9PR07MB7771.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e7500a72-1b4c-4571-74ea-08dd6d411c04
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Mar 2025 15:07:36.6263 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 48f9394d-8a14-4d27-82a6-f35f12361205
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Oyi7PQenFA59cKYIG2pCTqD9lMlOHYa5SloUjYPpu3TWF7snKE97ZMiGlaFd327e/irwr2JkYIwhyr2Cr2GVBg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB6351
Message-ID-Hash: 7ANIJDK7DMWKAP4SQOIMAMX5PZLVY3TV
X-Message-ID-Hash: 7ANIJDK7DMWKAP4SQOIMAMX5PZLVY3TV
X-MailFrom: Tim.Chown@jisc.ac.uk
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-ipv6.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Lorenzo Colitti <lorenzo=40google.com@dmarc.ietf.org>, Yuyang Huang <yuyanghuang@google.com>, "draft-ietf-6man-slaac-renum@ietf.org" <draft-ietf-6man-slaac-renum@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [IPv6]Re: Suggested RA lifetime defaults
List-Id: "IPv6 Maintenance Working Group (6man)" <ipv6.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/QgHnYoT8-ur4epJHUNflrsh7sA4>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Owner: <mailto:ipv6-owner@ietf.org>
List-Post: <mailto:ipv6@ietf.org>
List-Subscribe: <mailto:ipv6-join@ietf.org>
List-Unsubscribe: <mailto:ipv6-leave@ietf.org>

Beaconing Maciej’s email…

On 26/03/2025, 18:36, "Maciej Żenczykowski" <maze@google.com> wrote:

Here's how things currently work (to the best of my knowledge).

Wifi fundamentally has two types of frames.
Frames to all - encrypted with a group key (known to all clients).
Used for multicast/broadcast, I believe this is usually sent at
low(er) data rate so all clients get it.  There is *no* confirmation
of delivery.
Frames to a single client - encrypted with a client key.  Used for
unicast, sent at the highest possible rate for the given client.
There *is* confirmation of delivery (and retries).

NOTE: *some* good access points do b/mcast to unicast conversion, and
send everything as unicast.  This is much more common in enterprise
wifi gear.  This solves the mcast loss problem entirely.

The WiFi access point periodically broadcasts wifi beacons.  Usually
the interval is 100ms (but it might be configurable, it is in
hostapd/openwrt for example).
There are two types of these beacons: with and without multi/broadcast.
Usually it will send N-1 mcast-less beacon frames, and then 1
mcast-yes beacon frame (and repeat).
N is the 'dtim period/interval' and is a feature of the access point
(it may be configurable, on a good access point it will be).
Many times N is just 1 (ie. all beacons are potentially
mcast-carrying), opensource hostapd/openwrt defaults to 2, my personal
experience is 6 works better/best.

The beacons include information about which next beacon will have
mcast (ie. there's a counting down integer in them, and when it hits 0
you get mcast)

I think the m/bcast beacons just include the m/bcast frames directly
in them (or directly after them?).
Anyway, to receive 100% of m/bcast you have to listen to each of these
mcast-yes beacons.
If you miss them you simply get m/bcast packet loss.

The beacons (I think all of them) somehow include information about
which clients have pending unicast frames.
When a client notices a beacon informing it there is pending unicast
it asks the AP to transmit them, receives them, and confirms delivery.
In practice this means unicast delivery is reliable, provided the AP's
buffers (presumably per client) don't overflow.

The higher the dtim period, the longer mcast/bcast traffic gets
delayed by the AP (since it can only be sent along with the mcast-yes
beacon).
This increases m/bcast latency, but it doesn't affect unicast latency.
Since m/bcast is primarily (almost exclusively) used for discovery
(and net config), its latency doesn't really matter.
(at least so long as it doesn't go above around a second, which can
cause ARP timeouts/retransmits for example)

Receiving wifi beacons costs power, the wifi chip has to periodically
wake up enough to decode the airwaves, and parse the beacon and see if
it needs to do anything (ie. receive mcast or ucast) or not.
On battery powered devices, power draw matters.  Being able to keep
the entire wifi chip sleeping for longer is better.
[Note: we're *not* talking about OS suspend here, we're talking about
suspending parts of the digital signal processing pipeline inside of
the wifi chip itself]

Ideally devices (or rather mobile/battery optimized wifi chips) don't
want to have to wake up every 100ms for every beacon.
As such, if the device is in some low power state (inactive phone
sitting on your desk or in your pocket), then the wifi chip is also
instructed to try to minimize power.
Obviously, there is no need to listen to mcast-less beacons, you can
simply wake up every N*100ms and only check the mcast-yes beacons.
Then if needed, decode the following m/bcast frames, check the
ucast-for-you flag, and if present, ask the access point to transmit
those.

This is why a high dtim period is good for power draw.

Here we start getting into vendor specific stuff.  Since most wifi APs
have dtim period of 1, and waking up every 100ms to listen to
mcast-yes beacons is not desirable, many vendors implement hacks.
The most common of these is introducing a 'dtim multiplier' M.
Instead of listening to all mcast-yes beacons, you only listen to
every M-th one.
This causes you to lose M-1 mcast-yes beacons for every 1 you receive,
and thus also causes m/bcast loss (simply put M-1 / M packet loss).
For IPv4, since m/bcast is *mostly* used by ARP, and that simply gets
retried and/or extensively cached, you can get away with *very* high
bcast packet loss and ipv4 will still work.
Devices have been known to run with M=9 or even 10 on N=1 wifi networks.

[Note that usually if the device wakes up, ie. you're actively using
it, screen is on, device in your hand, then M gets set/clamped down to
1]

Since you don't want to delay things by more than ~1 second, usually
there is some automatic limitation of M, so that beacon interval
(100ms) * dtim period/interval (N) * dtim multiplier (M) < ~1s.
[I believe on most google pixel phone wifi chips the precise value of
that ~1s is approx 1.11s, I am surprised it is so high, I would have
expected 900ms - 1s, but oh well...]

Obviously the higher the WiFi access points dtim period (N), the lower
the maximum Wifi client's dtim multiplier (M).
In particular, with 100ms beacons, if N>=6 then M must be 1.  This is
why I recommend/use a dtim interval of 6 on my own access points.

IPv6 is more susceptible to mcast loss than IPv4 is.  IPv4 mostly
needs incoming broadcast ARP requests to work, and that is usually
tried 3 times and/or heavily cached by the router.
While IPv6 needs the periodic RAs to refresh ip/route information -
and there is no automatic retry (ie. no send RS near ip address /
default route expiration).

I believe on IPv6 enabled networks, in practice M is capped to 2 (for
a 50% loss rate).  I don't know if all devices do this, but if M>2 you
basically can't really expect v6 to work...
So a device may run with M=9 on an N=1 network, and switch to M=2 when
it detects RAs.

Ideally wifi access points would just get higher N values, and M could
just always be 1 and everything would just work...
But that simply isn't the case nowadays...

Let me know if something is unclear, getting tired of writing this
wall of text ;-)

- Maciej
(I'm not on the mailing lists, so that'll bounce and Bob Hinden
approves my last 2 messages but said he won't approve another unless I
sign up, and I haven't yet, so...)