[sipcore] response context association on stateful proxies

Filippos Vasilakis <vasilakisfil@gmail.com> Wed, 21 July 2021 07:40 UTC

Return-Path: <vasilakisfil@gmail.com>
X-Original-To: sipcore@ietfa.amsl.com
Delivered-To: sipcore@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BA5D83A082E for <sipcore@ietfa.amsl.com>; Wed, 21 Jul 2021 00:40:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 gmODfhpLRH9a for <sipcore@ietfa.amsl.com>; Wed, 21 Jul 2021 00:40:55 -0700 (PDT)
Received: from mail-vk1-xa33.google.com (mail-vk1-xa33.google.com [IPv6:2607:f8b0:4864:20::a33]) (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 D6CC03A0829 for <sipcore@ietf.org>; Wed, 21 Jul 2021 00:40:49 -0700 (PDT)
Received: by mail-vk1-xa33.google.com with SMTP id x125so358694vkf.0 for <sipcore@ietf.org>; Wed, 21 Jul 2021 00:40:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=nl8sLBJ7B0uCjLCpkUFJmWErJZveVNvz2A/Fjn2Nm6A=; b=HmBcU/il5zoUsVZenu0GW3ZZ90dAErltn3XAxnxsvaBaSEbXFotBtycLbJnnazapYm GbS70cv0vaxphjsT42tICHq0RLQrEgs1dAYXJr6wG4kOCPiKjZvNFcnTHLwhtSItCwVk uxzufF0ci5tfl1WkaiCp720hyjb2wRVm9D1kS85K4A9las519spWJ10h6BZg3X0xrRUL Hq1zd42Mw1GN2g14urBkyyGiuJzokj14mVkuROHzZ9mLijdgvfL0+KW9qv6wWWechhEU VhnSWNH5rEmzQRUvpAdS9QzYPD4xhzZzUR2QPiMoSwfxTVF+DI30SXRbBLeJ+FNvL8yR 6KCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=nl8sLBJ7B0uCjLCpkUFJmWErJZveVNvz2A/Fjn2Nm6A=; b=pgCmImf1RNMKyuWsmN/iPekJVkEe0YjB4Tk5iChL4PdmRvtDGSjbH0Wo2FQPrsvHpT nCOiAXmIzVuv5QdI7mmEru6jZW362Scy+BRx2YZFOelVHv2OJxaC4Rqd3m/NC1196dXz xJyWWgWloGw7wotUIEQMqhUVNccAviDDMWZ3IVf77oZukTIA8ZrUHpeZACK3rVpymT8A AM1EyxMyAmupRH3KzBn+G0p5OPJ6aa/auGnAUbv/RX30gukoZ3d8dXo4q+vcPtXJ/05Q 6NkJwvfD264NYtRY9La1E+2jAsrnAgBY8UZ5bD6u+tO7MGs6b8r/yVZG5OrX1OE0cyod o7Uw==
X-Gm-Message-State: AOAM532t6dHM76q+uFVrRgvV+MkGtXoFOwHtVEwb2frR7vzgcL9WOY6z Hn4kW+dd15nR5coceHn4L+xJ9sYkm5ewTi0YXklEoELwAmi5Tw==
X-Google-Smtp-Source: ABdhPJxw7ntd9VyaX/2yIPEhTqgmpt06VGqpfizmQ6qgDFVOL6bLx8HXoq/1jNToe67Hr/7tpyD6Q2fMywYL7e13mUA=
X-Received: by 2002:a1f:cf47:: with SMTP id f68mr30316311vkg.7.1626853248522; Wed, 21 Jul 2021 00:40:48 -0700 (PDT)
MIME-Version: 1.0
From: Filippos Vasilakis <vasilakisfil@gmail.com>
Date: Wed, 21 Jul 2021 09:40:37 +0200
Message-ID: <CANJ+WfeTPAcwfEq052rF+obWqCdjpYNXBd8hZFMr-zh=s297qA@mail.gmail.com>
To: sipcore@ietf.org
Content-Type: multipart/alternative; boundary="000000000000faddd205c79d49b8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/sipcore/AFFG2SFn5bzGUpP-4o3iiLbvlXo>
Subject: [sipcore] response context association on stateful proxies
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/sipcore/>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 21 Jul 2021 07:41:00 -0000

Hi everyone,

According to RFC 3261, a stateful proxy in section 16:

A stateful proxy must have a mechanism to maintain the target set as
   responses are received and associate the responses to each forwarded
   request with the original request.

My question is, how do we implement this association? You have the original
request, then this is forked to many new requests (the target set) and each
request from the target set might have one or more response (the response
context). However, once you fork the original request, you have a
completely new transaction, that the proxy plays the client role, while for
the original request, the proxy plays the server role.

So my question is how do you implement the matching/association between the
original request/transaction and the new forked
requests/responses/transaction? Is it enough to work match only on the
branch ids of the transaction from each side, or something more is needed?

I am surprised that RFC 3261 doesn't come up with a
suggestion/recommendation on that (I mean, it has been super helpful in any
other place with insights on implementations).

/Filippos