Re: Packet number spaces in multipath (was Re: What to do about multipath in QUIC)

Quentin De Coninck <quentin.deconinck@uclouvain.be> Sat, 05 December 2020 08:43 UTC

Return-Path: <quentin.deconinck@uclouvain.be>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3B7863A1012 for <quic@ietfa.amsl.com>; Sat, 5 Dec 2020 00:43:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 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, MSGID_FROM_MTA_HEADER=0.001, NICE_REPLY_A=-0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=uclouvain.be
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OlS1i6ZCD0oL for <quic@ietfa.amsl.com>; Sat, 5 Dec 2020 00:43:28 -0800 (PST)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2090.outbound.protection.outlook.com [40.107.20.90]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 891C93A100C for <quic@ietf.org>; Sat, 5 Dec 2020 00:43:27 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cTATctweMjIm1donzYE9sXIo5mE64xCeoZpYh+lfrugZBdsFMVug7CxyIKkefJyyxKSUdSnvNsiXbecTk8Fuv13LVtcH3mM1do/UptbyLOoEUpcSZKjAmh0DmJs0pZ+IUq5iMri6dBDyzEyC++v3c7LdaJif4wNPiD9gMc14kOHb1MTBc++3x1YR6CUj390z4l4qNyNun8rWwkdTqedXIevfFnqTwq1xoGc8KLNlDXubrJ0P1BodUp9KWnD9TWc4TjX604uh/H1Ljzzhn351/iRE3pQHgKBSGkTj1lpTYwJoJsVTHjOIWflnda8AA+62Rlt+qt6ZgZDFnkQUvZLcjA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XoKYMLhjVQCkxRjZmsQUij8ly7HZyo9F1VatogvaezA=; b=Xm233omZlcWE6dZ6pFRi4xS/MAlLviGBOZVijjIpVJLuh4jocA95OXKw0NUzCMDciHRUqvzzrmHylLUYOzJb4D6oQgipffHAhuo/8CEKSBQKmOBaCp7CNYRmQrAEKhtX7svEqH4gINs6WwEB4u0AH+LIdSv+VJVT7hjtwNoyLrBPjmmwa94t2MlksCdlc7KAOz7CXvICq7E7msBs0pWLKYeN9WPFN0JSymF6vdcjs59Zqwz9sWQ02qi9I3BGa9oklO9m8q2bJozTTs0TLusEuJc+IZ0R6MaWy+w+FRRmtEnV3a0OuCjgfHJ9jaWEiBBrWtf1CGOyVAgN5PtVM00jBw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=uclouvain.be; dmarc=pass action=none header.from=uclouvain.be; dkim=pass header.d=uclouvain.be; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uclouvain.be; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XoKYMLhjVQCkxRjZmsQUij8ly7HZyo9F1VatogvaezA=; b=sZrOdr7BOPXkJPFcQ2hREas/nRWNczSdnW8gmf/wdyaHu5aQfZawaesLeJy91vWOVCToL+2pbHT2+ojTxRXxPScTb6LBpRl+kdEfaqT9qyWFIRo/n5uYuD2jWKgAkGIElwedMSnS+VfO+l+d+x1jk4yMZgyJAZ4usL3uPKsvAFI=
Authentication-Results: huitema.net; dkim=none (message not signed) header.d=none;huitema.net; dmarc=none action=none header.from=uclouvain.be;
Received: from PA4PR03MB7344.eurprd03.prod.outlook.com (2603:10a6:102:10e::7) by PR3PR03MB6508.eurprd03.prod.outlook.com (2603:10a6:102:5e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.19; Sat, 5 Dec 2020 08:43:24 +0000
Received: from PA4PR03MB7344.eurprd03.prod.outlook.com ([fe80::7d36:eaa9:2bfe:8846]) by PA4PR03MB7344.eurprd03.prod.outlook.com ([fe80::7d36:eaa9:2bfe:8846%6]) with mapi id 15.20.3632.018; Sat, 5 Dec 2020 08:43:24 +0000
Subject: Re: Packet number spaces in multipath (was Re: What to do about multipath in QUIC)
To: Kazuho Oku <kazuhooku@gmail.com>
Cc: Jana Iyengar <jri.ietf@gmail.com>, Mirja Kuehlewind <mirja.kuehlewind@ericsson.com>, IETF QUIC WG <quic@ietf.org>, Christian Huitema <huitema@huitema.net>
References: <538215d1-3b9e-4784-920d-03be4c3a503a.miaoji.lym@alibaba-inc.com> <062fe812-8afb-d946-8336-1f4dc5ebeaaf@uclouvain.be> <7540ef46-9948-c76c-3617-5755be3cdf37@huitema.net> <CANatvzymE+XRXUMBH2quGi=VEUNXDR_Eoer+o6p9+nkD-KFisQ@mail.gmail.com> <3bb7f359-ebe5-7a54-0224-bb1f5f1754af@huitema.net> <CANatvzxyj3nXP+GrnMkexWV-VN7Og4EGXysq1o0W2e2JGWzDrw@mail.gmail.com> <651e0ae1-0a5e-89e9-55c0-c33439599da6@huitema.net> <CANatvzw4Yg9aX2qyaGfc9sS=oEFOHxp-ZLSLF0EYNa8t6uN-iA@mail.gmail.com> <4b96dbb8-e72c-7f99-0bb3-9ee27b7bda78@huitema.net> <CANatvzz_H205MPP67Vnuqp0mwhM0TUbHvA5CfVGeoivCLcUdgw@mail.gmail.com> <850c5bdd-948e-269a-1488-77a77843d5e6@huitema.net> <CACpbDccY3f2wMd5vFzK=NC=Me=EhgmFWMDS7TTBZFtG2bm=JSg@mail.gmail.com> <3A1F078F-6F88-47E8-AEB0-5E8C889AC28C@ericsson.com> <CACpbDcdwBVkN84vw3eVFishMnKWwKOTw+HpGA_-VooY6TiwxQQ@mail.gmail.com> <8dcdb29c-bb94-8eda-32c9-9d147ca4fa6e@uclouvain.be> <CANatvzz5=0ornmcbU43iLY+S3tFMYySqvrGbwnyJfmugkXWgOA@mail.gmail.com>
From: Quentin De Coninck <quentin.deconinck@uclouvain.be>
Message-ID: <9d0e90db-405e-e7b6-b021-6d1dfac9d837@uclouvain.be>
Date: Sat, 05 Dec 2020 09:43:23 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0
In-Reply-To: <CANatvzz5=0ornmcbU43iLY+S3tFMYySqvrGbwnyJfmugkXWgOA@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------C5BCBF82C466C99F0C2FD64F"
Content-Language: en-US
X-Originating-IP: [178.51.113.200]
X-ClientProxiedBy: PR3P191CA0016.EURP191.PROD.OUTLOOK.COM (2603:10a6:102:54::21) To PA4PR03MB7344.eurprd03.prod.outlook.com (2603:10a6:102:10e::7)
MIME-Version: 1.0
X-MS-Exchange-MessageSentRepresentingType: 1
Received: from [192.168.0.6] (178.51.113.200) by PR3P191CA0016.EURP191.PROD.OUTLOOK.COM (2603:10a6:102:54::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.17 via Frontend Transport; Sat, 5 Dec 2020 08:43:24 +0000
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d734a23b-c729-42d7-14ec-08d898f9d405
X-MS-TrafficTypeDiagnostic: PR3PR03MB6508:
X-Microsoft-Antispam-PRVS: <PR3PR03MB6508A3FD75AA0961289824149DF00@PR3PR03MB6508.eurprd03.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: YNdJM6ROBqnapABtOz0tsSdszkJJusiBYKyzE6QQScPuu4/Ju0EJpQx0ASkPtlbBwpQ/Ot89DLJXdhTSvIBWhny8mFQ/TuwVwFHoZ5FV/R5WWL55FAcpk6yIwigH+x7l9l1SBlWFkaqEBMTQiyPEAEmtVny+pEuA30UEY86SsgKw8DcsmSlYg4ti0px9LXhNRbX+eqhxSxQ6daafz90mTqzROJJIDt4Hd0y2R9pyWkT+6Hs6VfNBpBuF/g/YZzVLQNIT5jP1XyvACCHG2fFPetrpsBSnX8JEub1jAfg4B6Q6CvJ0XzkMjfLvhEuC+YtGK+gWNxS3YeWcsXs8TO4mGso264q0zE8gzda9yScyvKcxfYcVEEzJ4Vdqw0G5Ya6wLJlTdR7eTuIT7zAS8yntBNYNVs/w3p4uaJh2SZ/2JfU=
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR03MB7344.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(366004)(346002)(396003)(39860400002)(376002)(83380400001)(33964004)(6916009)(66574015)(30864003)(66556008)(5660300002)(66476007)(2616005)(8676002)(478600001)(52116002)(66946007)(86362001)(4326008)(16576012)(956004)(31686004)(6486002)(316002)(26005)(2906002)(36756003)(8936002)(31696002)(54906003)(16526019)(186003)(786003)(53546011)(43740500002)(45980500001); DIR:OUT; SFP:1102;
X-MS-Exchange-AntiSpam-MessageData: nHNnj/8OHumbUBPgRJBKSEXd52mgT1ScJ9er2mCS0r/k006BuBw1bozW1GHlqNpf+6QP5orgerip9tA7YXszgFupOcp0w/0b1/atdkzXiEjZOEuidGC+4N1zW3I9vnRQLTQwu+MaWCGfCPjDsMLk/mvoERfdJ8obO99DTPl4wvAXQNIcEpIicAXi74uAlt5klnewCvLBbHHVZndik3eRRmbMKPMk8ZLOseq6tULy3IO8SFrfOQJstVgBUPrxXKfCZ+A9YDCS37p4RACMWZrM1QOJuxX/rMz/DDLs3d7+2JYOw5QzwhW+IwQobxBVrMVxtbDN1qFT/mmnONw0fMsf17tDRTNSU5YsdB78ZRkAZXzTZ5iF+XLXVvVUgCCBSVpWiInBIiHPod5eOj8pjHkB5q0lxiXXO/YPNjWoKwcvH4GyvvD/UXNI1B0oUSkJdJ7bA5tbjQKkcaIxtVDrFPl1WeM/1r8ocibB53O67OFnUdbZxLaVjJoGOAbNPnqhFHP7YxEckNInAOEnHjlautHZA+uBQsfhi8zMjsrJs3ZISK82kS/rztW4OxoHnA2IQXKWYeIjvWMPXBh6bgckLw069uzXEfnnoQk9VMq9GYGAcjvgHet+kyiZiXWV/i0NxNcLnPeSzfZNAmafwxuVfqpuwcwT3hO09KaImkQzGLuhlD3k+lGfHYwEMC7JJZm8CS0VwEfucMwysrkYB4q0HI4ex051D8Ni6gqy2uTzprGrpIG7B6WHWBWxiyocJyzKyuzdC6Aeatz0pQ7MWW5cbCRAHBQARFwNY2Ubh13ytpdD+Q6rGF/e3cA5ggF4Aoe0b0feTSsPz5+du7PHoGxYfzrXp81WNpHPOGRCkkGvAgeV/LjqrGUbK1FmzCS7Xts7tsc11dSyk4gHai1ycv6z+MUCDV4HJSghOvlyBVhqeLp/P+F5q6RwDVjQpMtxPI55+iEP0Y6rcgW6retSSKYbx9TKZoXr76RDvKNrm2P2pwYLS5uAkSAAV3DXbdQHzudNW9Cm
X-OriginatorOrg: uclouvain.be
X-MS-Exchange-CrossTenant-Network-Message-Id: d734a23b-c729-42d7-14ec-08d898f9d405
X-MS-Exchange-CrossTenant-AuthSource: PA4PR03MB7344.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2020 08:43:24.5760 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7ab090d4-fa2e-4ecf-bc7c-4127b4d582ec
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dsdfAEyeb+XmseljzDoz/XT0Mconn5gwFmix7uaNFNOpkr47qQJE7ntfC7wwg3goQpRL1roktX+Cd7DcE1bK92C29tAiuNU8yku80pdwPjI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6508
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/YA7gOaKcGvdJYab_h-tawHCQfkY>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 05 Dec 2020 08:43:31 -0000

Hi Kazuho, see inline.

Le 4/12/20 à 19:52, Kazuho Oku a écrit :
>
>
> 2020年12月4日(金) 18:21 Quentin De Coninck <quentin.deconinck@uclouvain.be 
> <mailto:quentin.deconinck@uclouvain.be>>:
>
>     Jana and all,
>
>     I just have a concern about such a design using sequence number of
>     the connection ID as the path ID.
>
>     Assume that the server is willing to offer two available
>     connection IDs at any time, and that the client is using both at
>     the same time for multipath transfer. It uses the CID with seq num
>     0 on path A and the CID with seq num 1 on path B. Then, for any
>     reason (like privacy), the client wants to change the connection
>     ID used on path B (using seq num 1). However, the host cannot
>     retire the CID with seq num 1 without retiring the CID with seq
>     num 0 too.
>
>
> I'm not sure if that is the case.
>
> The consumer of a connection ID (in this case the client) can retire 
> connection IDs supplied by the issuer (the server) in any given order. 
> Separately, the issuer might ask the consumer to retire all connection 
> IDs with sequence numbers below a certain threshold by using the 
> Retire Prior To field, but in such case, the issuer can (and is 
> expected to) supply enough number of new connection IDs.

Oh, right. Indeed, the RETIRE_CONNECTION_ID frame does not retire all 
the lower IDs, it is only the "Retire Prior To" field of 
NEW_CONNECTION_ID so this problem is actually not one :-)

 From a functional point of view, using the sequence number of CID as 
path ID could work then. I still have an operational concern about the 
number of paths/connection IDs that are concurrently in use. Assume the 
server provides a large number of Connection IDs (let say 8) to let the 
client handle migration and possibly use a second network path. How can 
the server prevent the client from using all the available Connection 
IDs (in this case 8) to different paths at the same time (i.e., how can 
the server control the number of paths used by the client if it provides 
Connection IDs in advance)?

Best,

Quentin

>     If the server does not want to provide additional connection IDs
>     and the client is not willing to reuse CID with seq num 1 on path
>     A, the client is stuck with the CID with seq num 0 on path A and
>     cannot use the path B anymore.
>
>     This is why I believe we should not link the path ID to the
>     sequence number of the Connection ID (because it is a
>     monotonically increasing sequence number), and rather have a
>     separate space for them.
>
>     Best regards,
>
>     Quentin
>
>>     Mirja,
>>
>>     I'm referring to what Christian was summarizing below. Separate
>>     PN spaces but path ID is implicit as the sequence number of the
>>     connection ID, and ACKs reflect this sequence number.
>>
>>     - jana
>>
>>     On Wed, Dec 2, 2020 at 3:02 AM Mirja Kuehlewind
>>     <mirja.kuehlewind@ericsson.com
>>     <mailto:mirja.kuehlewind@ericsson.com>> wrote:
>>
>>         Hi Jana,
>>
>>         can you maybe confirm what you mean by “the design” below
>>         just to make sure we are all on the same page: Is that
>>         different PN spaces per path, but using the same key on all
>>         paths with CIDs as part of the nonce?
>>
>>         Thanks!
>>
>>         Mirja
>>
>>         *From: *QUIC <quic-bounces@ietf.org
>>         <mailto:quic-bounces@ietf.org>> on behalf of Jana Iyengar
>>         <jri.ietf@gmail.com <mailto:jri.ietf@gmail.com>>
>>         *Date: *Wednesday, 25. November 2020 at 04:35
>>         *To: *Christian Huitema <huitema@huitema.net
>>         <mailto:huitema@huitema.net>>
>>         *Cc: *IETF QUIC WG <quic@ietf.org <mailto:quic@ietf.org>>,
>>         Kazuho Oku <kazuhooku@gmail.com <mailto:kazuhooku@gmail.com>>
>>         *Subject: *Packet number spaces in multipath (was Re: What to
>>         do about multipath in QUIC)
>>
>>         (I'm taking Spencer's suggestion to spin off a new thread.)
>>
>>         Christian, Kazuho,
>>
>>         Slowly catching up on this, and apologies if I'm missing
>>         anything that was previously discussed in the centi-thread
>>         earlier.
>>
>>         If I understand the design correctly, it makes sense to me,
>>         and is very close to what we had implemented in Chromium a
>>         while ago.
>>
>>         Having thought about this problem several times in the past,
>>         I'd like to share a few points that come to mind.
>>
>>         First though, a point on terminology: the receiver maintains
>>         a separate "ReceivedPackets" for each CID, probably for each
>>         CID sequence number (CSN). Let's please not call this a SACK
>>         Dashboard, to avoid confusion.
>>
>>         On the question of sending more than 2^32 packets, I think
>>         that resetting the packet number (PN) is ok on new CIDs. I
>>         don't see why a sender would need to maintain continuity
>>         across multiple paths anyways, since the CC and loss
>>         recovery contexts are going to be different across paths. A
>>         sender _could_ still maintain these packets in the same
>>         "SentPackets" structure if it wants to, it would need an
>>         internal representation of CSN+PN to key off.
>>
>>         ACK Frames:
>>
>>         ------------------
>>
>>         Kazuho pointed out that when acknowledging, the ACK frame
>>         format should include CSN. I agree. I would argue for a
>>         design where a receiver uses an ACK frame per CSN (and
>>         encodes the CSN explicitly). There are multiple values for
>>         doing this, the primary being that you benefit from
>>         compression when PNs are contiguous within a CSN.
>>
>>         Return Path:
>>
>>         -----------------
>>
>>         There are other ways to decide which return path to send an
>>         ACK on this, but I would propose that a receiver respond on
>>         the most recently active forward path. That is, the path on
>>         which a packet was most recently received. This has the
>>         natural effect that a sender that wants to distribute
>>         traffic in a particular way also causes ACKs to be
>>         distributed similarly across the corresponding reverse paths.
>>
>>         RTT measurements:
>>
>>         ---------------------------
>>
>>         The return path for ACK frames will impact RTT measurements.
>>         That is fine. It is more important that information reach the
>>         sender as soon as possible than that it should not affect RTT
>>         measurements; we can fix the sender to measure and compensate
>>         as necessary. The estimated RTT statistics reflect the
>>         distribution of samples, and if both paths are being used,
>>         then the SmoothedRTT will reflect the expected value based on
>>         the traffic distribution across paths.
>>
>>         That said, it might be useful to track some new stats,
>>         especially about how much later is a "late ack" -- an
>>         ACK frame that contains no useful information -- is received.
>>         I'd have to think a bit more about this, but I think we can
>>         devise a stat here. This gives us useful information on the
>>         longest return path, which we can then explicitly use as part
>>         of the PTO computations, to compensate for the fact that the
>>         RTT is based on the shortest return path. (I would _not_ use
>>         this stat in the time-based loss detection timer,  but PTO
>>         ought to be fine.)
>>
>>         - jana
>>
>>         On Tue, Nov 17, 2020 at 9:42 AM Christian Huitema
>>         <huitema@huitema.net <mailto:huitema@huitema.net>> wrote:
>>
>>             I have been thinking about variations of that. I think we
>>             are making progress here.
>>
>>             If we follow your design, we get two constraints:
>>
>>             1) That the receive maintains an acknowledgement list
>>             based on the CID through which the packets are received.
>>
>>             2) That the senders guarantee that the same sequence
>>             number will not be used more than once with a specific CID.
>>
>>             The main implementation cost is for receivers. They have
>>             to allocate and maintain a "SACK Dashboard" in the
>>             context of each CID that they issue.
>>
>>             Senders have lots of control. For example, the "only
>>             once" condition is also met if a simple sender uses a
>>             single number space, as long as it does not send more
>>             than 2^32 packets. That makes the design reasonably easy
>>             to implement for constrained implementations.
>>
>>             Zero length CID are still possible, but that means the
>>             receiver supports only one PN space per sender. Multipath
>>             is not impossible, but you end up managing a single RTT
>>             and a single recovery structure. Not very good, but
>>             similar to what happens if multipath is implemented at
>>             the IP level.
>>
>>             There is still an issue for coordinating the take down of
>>             a path. Suppose that a client was using both Wi-Fi and
>>             LTE, and moves out of Wi-Fi range. The server will find
>>             out eventually that the packets sent to the Wi-Fi path
>>             are never acknowledged, but that may take some time. It
>>             would be better if the client could send a message saying
>>             something like "Abandon this path". That's not the same
>>             semantic as "retire this CID". We need a new frame for that.
>>
>>             "Abandon this path" is an extreme case. There are
>>             half-way steps, like manage the relative priority of a path.
>>
>
>
> -- 
> Kazuho Oku