Re: Need your help: different connection IDs in the same datagram
Ian Swett <ianswett@google.com> Wed, 15 July 2020 19:31 UTC
Return-Path: <ianswett@google.com>
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 AAD273A0E91 for <quic@ietfa.amsl.com>; Wed, 15 Jul 2020 12:31:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.599
X-Spam-Level:
X-Spam-Status: No, score=-17.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
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 Ig91tJJBnzwy for <quic@ietfa.amsl.com>; Wed, 15 Jul 2020 12:31:09 -0700 (PDT)
Received: from mail-yb1-xb36.google.com (mail-yb1-xb36.google.com [IPv6:2607:f8b0:4864:20::b36]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0035B3A0C56 for <quic@ietf.org>; Wed, 15 Jul 2020 12:31:08 -0700 (PDT)
Received: by mail-yb1-xb36.google.com with SMTP id y13so1674253ybj.10 for <quic@ietf.org>; Wed, 15 Jul 2020 12:31:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=O7QCeMURXQBB4I1cS949dFHNTIIPV6AeuIX6J8KzMvM=; b=ihYwmuOO+DNBENgWHeNrwcUX0PDsPrWQmLalLZ6/poN3MX2ZFutLz0R9As7HJsrbRT cub1+qr5gU873ALtHPuAsS8AgtYezHhVdh4+8KQQIkX1VtIoevDyTWAyXs4Jbou/l1GD y6s73OOdVuxVr/uPzf6UO2XTt6J07mqmM9UcvkhUWAS58E4CyCa/1AiQLdFBDNEhMC7u AA7jX2pj5lYN/Cta3YBgg+9iQppE1pDLSD07kfKgdwn0NFDimObQXNT20ROSE28jqx5k fqh4OE5xgLsYrmyXSANiyq3zlj5H4Xo78Kvb366+NVl6uueafZ6+/vfyrnIzhJ/BaqgJ l6qg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=O7QCeMURXQBB4I1cS949dFHNTIIPV6AeuIX6J8KzMvM=; b=Qk1ZjMBSlP0RPSOaEWdX8l/LEulGE/4Q1tEh+zeU9vFQuWIgcmkKufnQlbQIyxM86C +jDI/JxN28qBhNWRpJ1rVJb8UBYLo6Ys9rYl4fWdEDmYF90UUDnSGhQVrxP1X8bNFnGo BJ8NWnqRlu22lqGSSZkLMLcQEe8o+L5NOrtxNvD2zDesJSpBazW0vkv4zuj2XdZ2wuCd XQ8OrfUy75wBLdXaCHRY/7Dr67vjlzLY1ALTfMB0S//4SJxopWIZ+gz8WEj6ukIv2wp4 7xbiZeciokZMywS0f/KZ/HINu69l5l26BMbYn7Czfq6mXQiOLl0IQ3x3SXWHr2uZe2lx eR2A==
X-Gm-Message-State: AOAM532O61p8+qRBSZQOZZAqrOORMyY9Pp1mcldypAbuzF4IBCNJ1gty uSUVkVsM5dh8kfb0kUu4JzFL0Uexg2baV48GMD30RQ==
X-Google-Smtp-Source: ABdhPJxHYbstNWXJgh6HSS9OEKXZyV1kAAi1N4zlT3YU5K0pCt+dZXa4ilG4ZxZOSHvgV4uB+QgauUpWPoPi2b10M1M=
X-Received: by 2002:a25:da8c:: with SMTP id n134mr770961ybf.389.1594841467721; Wed, 15 Jul 2020 12:31:07 -0700 (PDT)
MIME-Version: 1.0
References: <ae21cc02-3357-40c8-a1e9-3966fdf575a5@www.fastmail.com> <20200715180231.GB9808@lubuntu>
In-Reply-To: <20200715180231.GB9808@lubuntu>
From: Ian Swett <ianswett@google.com>
Date: Wed, 15 Jul 2020 15:30:56 -0400
Message-ID: <CAKcm_gPfc3sFy0kuyTzUFk2XFMZ8NdXTd7CuNf0o0v+RXDG=xg@mail.gmail.com>
Subject: Re: Need your help: different connection IDs in the same datagram
To: Martin Thomson <mt@lowentropy.net>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000288c0a05aa7ff7f2"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/XQTLZXrtc3siGfSi5RSqu2isKU8>
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: Wed, 15 Jul 2020 19:31:11 -0000
I don't think this change would be difficult for our implementation, but I also don't see it as necessary. Given where we are in the process, that alone argues for not changing it I believe. On Wed, Jul 15, 2020 at 2:02 PM Dmitri Tikhonov <dtikhonov@litespeedtech.com> wrote: > On Wed, Jul 15, 2020 at 05:23:57PM +1000, Martin Thomson wrote: > > There has been some opposition to the proposed resolution in PR 3870. > > > > Apparently, for some, having multiple connection IDs in the same > > datagram complicates processing. I don't understand this objection. > > It seems to me more difficult to retain state across packets than it > > is to process each atomically. I was hoping that Christian or Nick > > can explain more about how this affects them. > > I can provide an example from lsquic. The datagram is parsed into > QUIC packets in one function, lsquic_engine_packet_in(): > > > https://github.com/litespeedtech/lsquic/blob/v2.18.1/src/liblsquic/lsquic_engine.c#L2781L2816 > > Each QUIC packet is processed by process_packet_in(), where a > connection is looked up: > > > https://github.com/litespeedtech/lsquic/blob/v2.18.1/src/liblsquic/lsquic_engine.c#L1352L1360 > > The DCID check is performed lsquic_engine_packet_in(), before > process_packet_in() is called: > > > https://github.com/litespeedtech/lsquic/blob/v2.18.1/src/liblsquic/lsquic_engine.c#L2793L2806 > > The DCID information is readily available in the datagram parsing > loop, while connection information is not. > > For lsquic to support the proposed change, it would have to remember > the current connection and then query it whether it is indeed the > owner of the next DCID (A) or look up DCID in the global hash (B): > > conn = NULL; > while (quic_packet = parse_udp(pointers)) { > dcid = parse(quic_packet); > if (conn) > { > #if VARIANT_A > if (!conn_owns_scid(conn, dcid)) > #else > if (conn != lookup_by_dcid(dcid)) > #endif > continue; > } > conn = process_packet(quic_packet); > } > > Not that it could not be done, of course, but it is both extra work > to modify lsquic and a more inefficient mechanism: what was a simple > CID comparison is now a hash lookup. > > That's why I argued [1] for having solid rationale behind the change > rather than a personal preference. > > - Dmitri. > > 1. > https://github.com/quicwg/base-drafts/issues/3800#issuecomment-656851626 > >
- Need your help: different connection IDs in the s… Martin Thomson
- Re: Need your help: different connection IDs in t… Marten Seemann
- RE: Need your help: different connection IDs in t… Nick Banks
- Re: Need your help: different connection IDs in t… Dmitri Tikhonov
- Re: Need your help: different connection IDs in t… Ian Swett
- Re: Need your help: different connection IDs in t… David Schinazi
- RE: Need your help: different connection IDs in t… Mike Bishop
- Re: Need your help: different connection IDs in t… Ian Swett
- Re: Need your help: different connection IDs in t… Martin Thomson
- Re: Need your help: different connection IDs in t… Martin Thomson
- Re: Need your help: different connection IDs in t… Dmitri Tikhonov
- Re: Need your help: different connection IDs in t… Dmitri Tikhonov
- Re: Need your help: different connection IDs in t… Martin Thomson
- Re: Need your help: different connection IDs in t… David Schinazi
- Re: Need your help: different connection IDs in t… Dmitri Tikhonov
- Re: Need your help: different connection IDs in t… Martin Thomson
- Re: Need your help: different connection IDs in t… Jana Iyengar
- Re: Need your help: different connection IDs in t… Kazuho Oku