Re: [V3] Gateway new to old

Justin Uberti <> Mon, 30 March 2020 16:56 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 82E2C3A00AE for <>; Mon, 30 Mar 2020 09:56:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -15.699
X-Spam-Status: No, score=-15.699 tagged_above=-999 required=5 tests=[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: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 81sv7N-nQwx4 for <>; Mon, 30 Mar 2020 09:56:47 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:4864:20::e2b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id A10153A0064 for <>; Mon, 30 Mar 2020 09:56:47 -0700 (PDT)
Received: by with SMTP id u11so11534977vsg.2 for <>; Mon, 30 Mar 2020 09:56:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=UQCbjNeA4MQqeN/mdw2oHlF3Cxv7N2wPWumLucqkQU0=; b=RQdbjfRL2qGZFZrZECa+ynNBBwnm9FV7ER0ArKOes3VNVwKfXnCOqbhmQQwstKQaSe TWKExwYuK1CFoCSx7erYL1cRId9hCXvbVUlvzZfRtoUX9Ey1dg6nqY4fmewQve9fSrZ8 p1fHW0F46rV4ayM7CCCXTrIjAzuibRD6+hiJ6r6pfaM9K80dV5ygT6Iq0TDyIn8h6DgR uASGTNkcFKvi6GIalKJJ51j1pT5RymbfBuNAgH6MqDN+DX+rwVO+1ZwDWyun+xaXHDGg qfCFD7ohbQbV+zMg+elEwHSPMjtg1Zk7+wqje+Gnw+QwexHC+NiaP4OOmY1MV9u/D4HK E6LQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=UQCbjNeA4MQqeN/mdw2oHlF3Cxv7N2wPWumLucqkQU0=; b=RWSy2naw+qobgd9oxrryDXFsnkOyKtW1u8+wcPo+Vf4lEnz+1mOGRt4WKs4uzCkwrE 7JgWdbGF/lq5CsefLkosE4raL2371hQJ6EbetnP+Rop+DiteRHn7FKHfaLbbcn8Q0bQZ Wd1rc11QFp3tPZ+vED8meNEULa0l496PZENuDldyrfzppNBNJa4ztFxLM06ikvKXN5An /j//lSXjyCAnXRy7vjSRjCfx631eZHYLF3uBiQd7JPDYiKZ14YrnitKxXFJbCZ8swyXH SZzrLRfdCP6qgfnL5y/OKTH9nQr/ve4ZC0yAt2sUl+XsQCErKNEib8i6+OGEH4EBolYo /yuw==
X-Gm-Message-State: AGi0PubecvSMG8l0Row0eQabS9GNOfekQbnPN3gQakk2lrt34dXqPzTI nQuYr0NFWQdriqBcYuljHsPzBw1Y6uIG0prFFd/9baWy
X-Google-Smtp-Source: APiQypJcnnFfOWdT1EMLN8lCICvGI4Y7p1mZLI5dhJAQ029jKMKxqg2+0kjezeCINrP6AAgIF2NGPXk9GW/el7iHuYA=
X-Received: by 2002:a67:fd6f:: with SMTP id h15mr4765624vsa.96.1585587406007; Mon, 30 Mar 2020 09:56:46 -0700 (PDT)
MIME-Version: 1.0
References: <> <> <> <>
In-Reply-To: <>
From: Justin Uberti <>
Date: Mon, 30 Mar 2020 09:56:34 -0700
Message-ID: <>
To: Cullen Jennings <>
Cc: "" <>
Content-Type: multipart/alternative; boundary="000000000000195a2e05a215561a"
Archived-At: <>
Subject: Re: [V3] Gateway new to old
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 30 Mar 2020 16:56:51 -0000

On Mon, Mar 30, 2020 at 6:55 AM Cullen Jennings <> wrote:

> On the stateless or not … I’ve tried implementing this a few different
> ways and I think what we want is a sort of mostly stateless with frequent
> sate updates for the parts that are not stateless. Let me explain ….
> First keep in mind there is nothing stateless about the QUIC connection.
> Lots of state for crypto. It also seems like it would be a good thing to
> allow state for compression. So we are already out of a fully stateless
> design before we even start.

Sure, there is lots of state for crypto. But this will typically be handled
by a frontend server at the edge of the cloud infra, so we should focus on
the RTP-specific parts.

> So when we say RIPT can map to RTP, we really mean RTP + RTCP as that is
> needed. In the RTCP we need things like the NTP timestamp. I don’t think we
> want to send the full NTP timestamp in ever RIPT packet which probably
> rules out a fully stateless design. In WebRTC we took the approach of
> putting some data in RTP header extensions and sending them not ever packet
> but relatively frequently like every second or every IFrame.  I think we
> should do the same thing here - we should have some stuff that is sent
> frequently enough that if you loose all state until it is resent, it is
>  not a huge deal.
> This would allow us to do things like send the info to map to NTP time
> once a second not in every packet. When you look at what is in a basic RTP
> packet, I think it is easy to have that 1:1 mapping of all that data to
> something in the RIPT packet but when you start looking at the RTCP data or
> some of the RTP header extensions, I think that needs to all map to stuff
> in RIPT but probably not something that has to be every RIPT packet.
> Hope that makes sense. That said, I think this still is an extremely
> mostly 1:1 and simple 20 lines of code to map between RTP/RTCP and RIPT but
> I think we will end up with a bit of state that if frequently refreshed and
> is no worse than loosing an IFrame if you loose that state.

I can get on board with this. As you say, there already is some state with
RTP/RTCP in terms of the timestamp mapping. The main thing is that this
needs to be loss-tolerant (which makes compression somewhat harder) and
self-healing, e.g., on a gateway failover.

But yeah, it would be nice to not have to send the ~same 12 bytes + 0xBEDE
in every packet. (And this is why I think we can reach parity or better
with RTP efficiency.)

> On Mar 27, 2020, at 2:22 PM, Justin Uberti <
>> wrote:
> It's hard to imagine that we can avoid this if we are in fact going to use
> H3 as a substrate.
> I do think it would be useful to ensure the RIPT->RTP gateway can be
> stateless and transparent (i.e., you can transform a RIPT frame into a RTP
> packet with reasonable fidelity), so that said gateway is all you need in
> order for existing services to participate in the RIPT ecosystem.
> On Fri, Mar 27, 2020 at 9:32 AM Cullen Jennings <> wrote:
>> On Mar 27, 2020, at 8:23 AM, Magnus Westerlund <
>>> wrote:
>> The next media transport issue that was barely discussed in the BOF is the
>> legacy (RTP) interoperate question. This is going to come back in the
>> scope
>> discussion and do needs at least a direction.
>> In WebRTC, we decided to be able to gateway SIP to WebRTC without
>> processing media. That turned out to be a major limitation to how WebRTC
>> worked. That is good and we have WebRTC but for this, I am storngly of the
>> view we should not have that design constraint.
>> I think it is fine to require a media gateway to go from RIPT to RTP.
>> Sure that should be pretty easy - one of the major use cases for this work
>> will likely involve building SBCs that talk RIPT on one side and SIP on the
>> other. Pretty sure that a bunch of other people are thinking about the
>> same.
>> That sound right to you are or are you arguing for something else ?
>> --
>> V3 mailing list
> --
> V3 mailing list