Re: [AVTCORE] Benjamin Kaduk's Discuss on draft-ietf-payload-tsvcis-03: (with DISCUSS and COMMENT)

Barry Leiba <barryleiba@computer.org> Fri, 14 February 2020 12:38 UTC

Return-Path: <barryleiba@gmail.com>
X-Original-To: avt@ietfa.amsl.com
Delivered-To: avt@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2E3C4120827; Fri, 14 Feb 2020 04:38:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 3.6
X-Spam-Level: ***
X-Spam-Status: No, score=3.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, GB_SUMOF=5, HEADER_FROM_DIFFERENT_DOMAINS=0.25, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
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 SF2C4dszXTJi; Fri, 14 Feb 2020 04:38:39 -0800 (PST)
Received: from mail-io1-f66.google.com (mail-io1-f66.google.com [209.85.166.66]) (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 4DCF21200DE; Fri, 14 Feb 2020 04:38:36 -0800 (PST)
Received: by mail-io1-f66.google.com with SMTP id d15so10394503iog.3; Fri, 14 Feb 2020 04:38:36 -0800 (PST)
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:cc; bh=heQDP0TJ6o6Bx2f0n2S/flBq7YFQBrNHXZ2cqcWyZu0=; b=UVUtDtmNO7cI7bfDERqvg1rCHP045108eLrL/ozoLcOKlNAtS4wxfrGEMXA6SIRHNn 4LSRObGW6sfM3Og2OsIj/2vAGTj301NYokxoekSy7OLXjooWlfFtehzQ3XgxqpX/mHTi XKgohu9QHezc+nPzfmdz3daGO664XxGgZgnIzFiAIJtvkOeX5Ipw92N+f8O4tG0GVXu5 AJFpfqcy+TCB1aXbygBp9WpgQxptz5GtcwMfMvRiYprdqcY5v3vOh7VbY0fpjJ1LItnl SYYwtfSfZlavlyCZN75ymhNlF0Pc65SaGzQl0BSWmRXBA8V1pFRkQUPM/bY0KG+vIizW hjog==
X-Gm-Message-State: APjAAAUyYp+RHy2eJgSKYxslERu1hTc8nV545mrF+LJ0BdAPRblM12IC qGJDYGY9d0ZMWnvgYkjsT8++hJ4HqQuJRIDzcvg=
X-Google-Smtp-Source: APXvYqzbFf3VINyl3t9pIyRr3iHfq+H7/iupjE5Kbp+XdQKHGbWCxMWiNBtQH3HTUpTUyt065+xOBtNa8xuKB/WFNwo=
X-Received: by 2002:a5e:8417:: with SMTP id h23mr1979199ioj.17.1581683915326; Fri, 14 Feb 2020 04:38:35 -0800 (PST)
MIME-Version: 1.0
References: <157007038502.8860.1558861534319247512.idtracker@ietfa.amsl.com> <001601d57af9$405efcf0$c11cf6d0$@vocal.com> <6E58094ECC8D8344914996DAD28F1CCD23D79BC0@DGGEMM506-MBX.china.huawei.com> <034a01d58a73$f4d3a1c0$de7ae540$@vocal.com> <037e01d58a92$72287510$56795f30$@vocal.com> <CALaySJLSkZnC_jsQtk+Ybq03RWYJeujdeft+zGsv9uZ5wjcwCg@mail.gmail.com> <20191101001153.GQ88302@kduck.mit.edu> <06e101d59f15$ee937b30$cbba7190$@vocal.com> <20191125064606.GL32847@mit.edu>
In-Reply-To: <20191125064606.GL32847@mit.edu>
From: Barry Leiba <barryleiba@computer.org>
Date: Fri, 14 Feb 2020 07:38:24 -0500
Message-ID: <CALaySJJNovsSWuCB_R3Dc7ci7did2Zu20haU5o7b6pSpRYP5nw@mail.gmail.com>
To: Benjamin Kaduk <kaduk@mit.edu>
Cc: victor.demjanenko@vocal.com, "Roni Even (A)" <roni.even@huawei.com>, The IESG <iesg@ietf.org>, Catherine Meadows <catherine.meadows@nrl.navy.mil>, IETF SecDir <secdir@ietf.org>, draft-ietf-payload-tsvcis@ietf.org, Ali Begen <ali.begen@networked.media>, avtcore-chairs@ietf.org, avt@ietf.org, "Dave Satterlee (Vocal)" <Dave.Satterlee@vocal.com>, IETF discussion list <ietf@ietf.org>, draft-ietf-payload-tsvcis.all@ietf.org
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/zkEaFlrbksBANb29CHiPRkc_t6o>
X-Mailman-Approved-At: Sat, 15 Feb 2020 22:16:51 -0800
Subject: Re: [AVTCORE] Benjamin Kaduk's Discuss on draft-ietf-payload-tsvcis-03: (with DISCUSS and COMMENT)
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/avt/>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 14 Feb 2020 12:38:43 -0000

This is still outstanding, since November.  Victor, where are we on this one?

Barry

On Mon, Nov 25, 2019 at 1:46 AM Benjamin Kaduk <kaduk@mit.edu> wrote:
>
> Hi Victor,
>
> On Tue, Nov 19, 2019 at 03:14:21PM -0500, victor.demjanenko@vocal.com wrote:
> > Hi Ben,
> >
> > Sorry I overlooked sending you a response.  I would like to address the two
> > concerns you have by explaining what the speech coders are doing.
>
> Thanks for the extra clarifications.  To supply one of my own: I'm not
> concerned that the protocol doesn't work as implemented, but just want to
> make sure that the document includes enough information to admit new
> implementations without guesswork.  That is to say, "either tell me how to
> do it or tell me where to look that tells me how to do it".
>
> > WRT to 600 bps MELP, there is one TSVCIS mode that uses one bit beyond the
> > 54-bit frame for MELP 600 as a frame sync which alternates between frames.
> > With two or more MELP 600bps frames in one RTP packet, if any frame
> > indicates 600 bps by CODA being 0 and CODB being 1, then we know the stream
> > is 600bps.  If there is a single frame in an RTP packet, you can still
> > deduce this by looking at every other RTP packet (every other MELP 600bps
> > frame) and by the timestamp advance.  Most likely the two ends would
> > negotiate 600 bps in SDP anyways so there really should not be a problem.  I
> > know it's not pretty but its workable.  I hope this explanation helps you
> > with the concerns for this issue.
>
> In this case, the use as an "end-to-end framing bit" (i.e., the alternating
> behavior you describe above) is not explicitly stated; one might imagine a
> scheme where the framing usage is to have the bit cycle through 1, 1, 0,
> and 0, or some other scheme.  I'd suggest to note in the document that if
> any instance of (CODA, CODB) == (0, 1) is observed, then the 600bps mode is
> in use.  It might also be helpful to include the observation that two
> successive MELPe payloads with CODA == CODB == 0 indicates the 2400bps mode
> (and that seeing them in a single RTP packet is decisive, whereas
> additional information about packet non-loss would be needed in the
> one-MELPe-frame-per-RTP-packet case), but that would be a fair bit of
> additional text and might be diminishing returns.  (Or, of course, the use
> of CODB as an alternating 1/0 bit as the framing usage could be documented
> instead.)
>
> > As for the TSVCIS parameter packing/unpacking, this is really simple.  There
> > is exactly on three bit parameter, exactly one five bit parameter and a
> > variable number of eight bit parameters.  In our view, the speech coder
> > itself (or a wrapper for it) is responsible for preparing the block of
> > octets.  RTP then just transports it.  On receive, the complementary wrapper
> > reverses the packing operation.  I hope this clarifies and explains the
> > simplicity.
>
> That's exactly what I expected to happen; however, it's not what I believe
> the current text of the document is describing.  Specifically, I think that
> the current text implies that the "preparing the block of octets" and
> "complementary wrapper reverses the packing operation" are supposed to be
> part of the RTP payload format that this document describes, but this
> document does not have enough information to actually perform those
> operations reversibly.  If the packing is to be done in the speech coder,
> then this document doesn't need to talk about the packing at all (e.g., at
> the end of Section 2); if we need to keep the packing/wrapper in this
> document then we need to indicate that there's a defined priority order for
> the (8-octet) TSVCIS parameters in the TSVCIS references, to allow the
> packing/unpacking to be deterministic.
>
> Thanks,
>
> Ben
>
> >
> > -----Original Message-----
> > From: Benjamin Kaduk <kaduk@mit.edu>
> > Sent: Thursday, October 31, 2019 8:12 PM
> > To: Barry Leiba <barryleiba@computer.org>
> > Cc: victor.demjanenko@vocal.com; Roni Even (A) <roni.even@huawei.com>; The
> > IESG <iesg@ietf.org>; Catherine Meadows <catherine.meadows@nrl.navy.mil>;
> > IETF SecDir <secdir@ietf.org>; draft-ietf-payload-tsvcis@ietf.org; Ali Begen
> > <ali.begen@networked.media>; avtcore-chairs@ietf.org; avt@ietf.org; Dave
> > Satterlee (Vocal) <Dave.Satterlee@vocal.com>; IETF discussion list
> > <ietf@ietf.org>; draft-ietf-payload-tsvcis.all@ietf.org
> > Subject: Re: Benjamin Kaduk's Discuss on draft-ietf-payload-tsvcis-03: (with
> > DISCUSS and COMMENT)
> >
> > I don't think so, unfortunately.
> >
> > I do see the clarification about CODB's potential for deviation from Table
> > 1, that only the 600 bps MELPe is allowed to deviate, and that CODA gets us
> > to "it's one of 2400 or 600 bps" and the RTP timestamp disambiguates that
> > 600 bps is in use.  But, it seems that this means that the recipient in
> > general should not rely on CODB to differentiate 600 from 2400 bps, and
> > instead is more robustly implemented by *always* using the RTP timestamp to
> > detect 600 bps, since that will always work and CODB will sometimes not work
> > under conditions not fully specified here.  So, if we are unwilling or
> > unable to clarify what those conditions are (e.g., whether at a minimum
> > mutual agreement is required), then I think we need to describe this
> > procedure of consulting the RTP timestamp as the default behavior and avoid
> > giving the impression that CODB should be used to do so.
> >
> > Additionally, I don't see anything to address my concern about TSVCIS
> > parameter decoding.  To be clear, the procedure I see this document
> > describing is that:
> > - TSVCIS gives parameters (and their lengths in bits) to the codec
> >   described in this document
> > - this document specifies how to densely encode those parameters into a
> >   byetstream
> > - RTP transmits that encoded bytestream to the peer
> > - the codec specified by this is responsible for turning that encoded
> >   bystream back into a list of TSVCIS parameters (and their length in bits)
> >
> > I don't see how that last step is attainable with only the information
> > provided by this document.  I *assume* that one of the TSVCIS specifications
> > has a canonical (ordered) listing of parameters, and that the list of
> > parmeters given to this codec in the first step will always be an initial
> > prefix of that list, but that's just me guessing at how to make sense of the
> > stated procedure given insufficient information.  I don't think it's
> > appropriate to make the reader of an RFC guess at what to do; we need to
> > either say how to do it or give a pointer to an external reference that
> > does.
> >
> > -Ben
> >
> > On Tue, Oct 29, 2019 at 02:26:09PM -0400, Barry Leiba wrote:
> > > Ben, does the -04 version address everything?
> > >
> > > Barry
> > >
> > > On Thu, Oct 24, 2019 at 1:42 PM <victor.demjanenko@vocal.com> wrote:
> > > >
> > > > I forgot to address security comments in one email.  The changes are:
> > > >
> > > > Section 8, second paragraph - Suggested edit by reviewer
> > > >
> > > > (was)
> > > >    This RTP payload format and the TSVCIS decoder do not exhibit any
> > > >    significant non-uniformity in the receiver-side computational
> > > >    complexity for packet processing and thus are unlikely to pose a
> > > >    denial-of-service threat due to the receipt of pathological data.
> > > >    Additionally, the RTP payload format does not contain any active
> > > >    content.
> > > >
> > > > (now)
> > > >    This RTP payload format and the TSVCIS decoder, to the best of our
> > > >    knowledge, do not exhibit any significant non-uniformity in the
> > > >    receiver-side computational complexity for packet processing and thus
> > > >    are unlikely to pose a denial-of-service threat due to the receipt of
> > > >    pathological data. Additionally, the RTP payload format does not
> > > >    contain any active content.
> > > >
> > > >
> > > > Section 8, third paragraph - Suggested edit by reviewer
> > > >
> > > > (was)
> > > >    Please see the security considerations discussed in [RFC6562]
> > > >    regarding VAD and its effect on bitrates.
> > > >
> > > > (now)
> > > >    Please see the security considerations discussed in [RFC6562]
> > > >    regarding Voice Activity Detect (VAD) and its effect on bitrates.
> > > >
> > > > Victor
> > > >
> > > > -----Original Message-----
> > > > From: victor.demjanenko@vocal.com <victor.demjanenko@vocal.com>
> > > > Sent: Thursday, October 24, 2019 10:05 AM
> > > > To: 'Roni Even (A)' <roni.even@huawei.com>; 'Benjamin Kaduk'
> > > > <kaduk@mit.edu>; 'The IESG' <iesg@ietf.org>
> > > > Cc: draft-ietf-payload-tsvcis@ietf.org; 'Ali Begen'
> > > > <ali.begen@networked.media>; avtcore-chairs@ietf.org; avt@ietf.org;
> > > > 'Dave Satterlee (Vocal)' <Dave.Satterlee@vocal.com>
> > > > Subject: RE: Benjamin Kaduk's Discuss on
> > > > draft-ietf-payload-tsvcis-03: (with DISCUSS and COMMENT)
> > > >
> > > > Hi Everyone,
> > > >
> > > > First we want to thank everyone for their review and comments for this
> > draft RFC.  We believe we reviewed all the comments and suggestions and
> > incorporated them adequately in the next draft (04).  We'd like to send out
> > this list of exact changes in case anyone has additional comments or thinks
> > the clarifications are inadequate.  We would be most happy to address
> > concerns before publishing draft 04 tomorrow.
> > > >
> > > > With so many emails from a half dozen or more reviewers, we apologize
> > that we cannot address each sender individually.  We hope this detail is
> > sufficient for everyone.
> > > >
> > > > Again, many thanks to all.
> > > >
> > > > Victor & Dave
> > > >
> > > > --------------------------------------------------------------------
> > > > --------------------------
> > > >
> > > > Section 1.1 - Suggested reference to RFC 8088 added.
> > > >
> > > > (was)
> > > >    Best current practices for writing an RTP payload format
> > > >    specification were followed [RFC2736].
> > > >
> > > > (now)
> > > >    Best current practices for writing an RTP payload format
> > > >    specification were followed [RFC2736] [RFC8088].
> > > >
> > > >
> > > > Section 2, paragraphs 3 and 4 - Suggested edits by reviewers
> > > >
> > > > (was)
> > > >    In addition to the augmented speech data, the TSVCIS specification
> > > >    identifies which speech coder and framing bits are to be encrypted,
> > > >    and how they are protected by forward error correction (FEC)
> > > >    techniques (using block codes).  At the RTP transport layer, only the
> > > >    speech coder related bits need to be considered and are conveyed in
> > > >    unencrypted form.  In most IP-based network deployments, standard
> > > >    link encryption methods (SRTP, VPNs, FIPS 140 link encryptors or Type
> > > >    1 Ethernet encryptors) would be used to secure the RTP speech
> > > >    contents.  Further, it is desirable to support the highest voice
> > > >    quality between endpoints which is only possible without the overhead
> > > >    of FEC.
> > > >
> > > >    TSVCIS augmented speech data is derived from the signal processing
> > > >    and data already performed by the MELPe speech coder.  For the
> > > >    purposes of this specification, only the general parameter nature of
> > > >    TSVCIS will be characterized.  Depending on the bandwidth available
> > > >    (and FEC requirements), a varying number of TSVCIS specific speech
> > > >    coder parameters need to be transported.  These are first byte-packed
> > > >    and then conveyed from encoder to decoder.
> > > >
> > > > (now)
> > > >    In addition to the augmented speech data, the TSVCIS specification
> > > >    identifies which speech coder and framing bits are to be encrypted,
> > > >    and how they are protected by forward error correction (FEC)
> > > >    techniques (using block codes).  At the RTP transport layer, only the
> > > >    speech-coder-related bits need to be considered and are conveyed in
> > > >    unencrypted form.  In most IP-based network deployments, standard
> > > >    link encryption methods (SRTP, VPNs, FIPS 140 link encryptors or Type
> > > >    1 Ethernet encryptors) would be used to secure the RTP speech
> > > >    contents.
> > > >
> > > >    TSVCIS augmented speech data is derived from the signal processing
> > > >    and data already performed by the MELPe speech coder.  For the
> > > >    purposes of this specification, only the general parameter nature of
> > > >    TSVCIS will be characterized.  Depending on the bandwidth available
> > > >    (and FEC requirements), a varying number of TSVCIS-specific speech
> > > >    coder parameters need to be transported.  These are first byte-packed
> > > >    and then conveyed from encoder to decoder.
> > > >
> > > >
> > > > Section 3, last sentence paragraph 3 - Suggested edit by reviewer
> > > >
> > > > (was)
> > > >    When more than one codec data frame is
> > > >    present in a single RTP packet, the timestamp is, as always, that of
> > > >    the oldest data frame represented in the RTP packet.
> > > >
> > > > (now)
> > > >    When more than one codec data frame is
> > > >    present in a single RTP packet, the timestamp specified is that of
> > > >    the oldest data frame represented in the RTP packet.
> > > >
> > > >
> > > > Section 3.1, last paragraph - Clarified permission for MELP 600
> > > > end-to-end framing bit
> > > >
> > > > (was)
> > > >    It should be noted that CODB for both the 2400 and 600 bps modes MAY
> > > >    deviate from the values in Table 1 when bit 55 is used as an end-to-
> > > >    end framing bit.  Frame decoding would remain distinct as CODA being
> > > >    zero on its own would indicate a 7-byte frame for either rate and the
> > > >    use of 600 bps speech coding could be deduced from the RTP timestamp
> > > >    (and anticipated by the SDP negotiations).
> > > >
> > > > (now)
> > > >    It should be noted that CODB for MELPe 600 bps mode MAY deviate from
> > > >    the value in Table 1 when bit 55 is used as an end-to-end framing
> > > >    bit. Frame decoding would remain distinct as CODA being zero on its
> > > >    own would indicate a 7-byte frame for either 2400 or 600 bps rate and
> > > >    the use of 600 bps speech coding could be deduced from the RTP
> > > >    timestamp (and anticipated by the SDP negotiations).
> > > >
> > > >
> > > > Section 3.2, first paragraph - Clarifications requested by reviewers
> > > >
> > > > (was)
> > > >    The TSVCIS augmented speech data as packed parameters MUST be placed
> > > >    immediately after a corresponding MELPe 2400 bps payload in the same
> > > >    RTP packet.  The packed parameters are counted in octets (TC).  In
> > > >    the preferred placement, shown in Figure 6, a single trailing octet
> > > >    SHALL be appended to include a two-bit rate code, CODA and CODB,
> > > >    (both bits set to one) and a six-bit modified count (MTC).  The
> > > >    special modified count value of all ones (representing a MTC value of
> > > >    63) SHALL NOT be used for this format as it is used as the indicator
> > > >    for the alternate packing format shown next.  In a standard
> > > >    implementation, the TSVCIS speech coder uses a minimum of 15 octets
> > > >    for parameters in octet packed form.  The modified count (MTC) MUST
> > > >    be reduced by 15 from the full octet count (TC).  Computed MTC = TC-
> > > >    15.  This accommodates a maximum of 77 parameter octets (maximum
> > > >    value of MTC is 62, 77 is the sum of 62+15).
> > > >
> > > > (now)
> > > >    The TSVCIS augmented speech data as packed parameters MUST be placed
> > > >    immediately after a corresponding MELPe 2400 bps payload in the same
> > > >    RTP packet.  The packed parameters are counted in octets (TC).  The
> > > >    preferred placement SHOULD be used for TSVCIS payloads with TC less
> > > >    than or equal to 77 octets, is shown in Figure 6.  In the preferred
> > > >    placement, a single trailing octet SHALL be appended to include a
> > > >    two-bit rate code, CODA and CODB, (both bits set to one) and a six-
> > > >    bit modified count (MTC).  The special modified count value of all
> > > >    ones (representing a MTC value of 63) SHALL NOT be used for this
> > > >    format as it is used as the indicator for the alternate packing
> > > >    format shown next.  In a standard implementation, the TSVCIS speech
> > > >    coder uses a minimum of 15 octets for parameters in octet packed
> > > >    form.  The modified count (MTC) MUST be reduced by 15 from the full
> > > >    octet count (TC).  Computed MTC = TC-15.  This accommodates a maximum
> > > >    of 77 parameter octets (maximum value of MTC is 62, 77 is the sum of
> > > >    62+15).
> > > >
> > > >
> > > > Section 3.3, first paragraph - Suggested edit by reviewer
> > > >
> > > > (was)
> > > >    A TSVCIS RTP packet consists of zero or more TSVCIS coder frames
> > > >    (each consisting of MELPe and TSVCIS coder data) followed by zero or
> > > >    one MELPe comfort noise frame.  The presence of a comfort noise frame
> > > >    can be determined by its rate code bits in its last octet.
> > > >
> > > > (now)
> > > >    A TSVCIS RTP packet payload consists of zero or more consecutive
> > > >    TSVCIS coder frames (each consisting of MELPe 2400 and TSVCIS coder
> > > >    data), with the oldest frame first, followed by zero or one MELPe
> > > >    comfort noise frame.  The presence of a comfort noise frame can be
> > > >    determined by its rate code bits in its last octet.
> > > >
> > > >
> > > > Section 3.3, fourth paragraph - Clarification requested by reviewers
> > > >
> > > > (was)
> > > >    TSVCIS coder frames in a single RTP packet MAY be of different coder
> > > >    bitrates.  With the exception for the variable length TSVCIS
> > > >    parameter frames, the coder rate bits in the trailing byte identify
> > > >    the contents and length as per Table 1.
> > > >
> > > > (now)
> > > >    TSVCIS coder frames in a single RTP packet MAY have varying TSVCIS
> > > >    parameter octet counts.  Its packed parameter octet count (length) is
> > > >    indicated in the trailing byte(s).  All MELPe frames in a single RTP
> > > >    packet MUST be of the same coder bitrate.  For all MELPe coder
> > > >    frames, the coder rate bits in the trailing byte identify the
> > > >    contents and length as per Table 1.
> > > >
> > > >
> > > > Section 4.1 - Editor note removed
> > > >
> > > >
> > > > Section 4.1 - Change controller is now
> > > >
> > > > (now)
> > > >    Change controller: IETF, contact <avt@ietf.org>
> > > >
> > > >
> > > > Section 5, first paragraph - Suggested edits by reviewers
> > > >
> > > > (was)
> > > >    A primary application of TSVCIS is for radio communications of voice
> > > >    conversations, and discontinuous transmissions are normal.  When
> > > >    TSVCIS is used in an IP network, TSVCIS RTP packet transmissions may
> > > >    cease and resume frequently.  RTP synchronization source (SSRC)
> > > >    sequence number gaps indicate lost packets to be filled by PLC, while
> > > >    abrupt loss of RTP packets indicates intended discontinuous
> > > >    transmissions.
> > > >
> > > > (now)
> > > >    A primary application of TSVCIS is for radio communications of voice
> > > >    conversations, and discontinuous transmissions are normal.  When
> > > >    TSVCIS is used in an IP network, TSVCIS RTP packet transmissions may
> > > >    cease and resume frequently.  RTP synchronization source (SSRC)
> > > >    sequence number gaps indicate lost packets to be filled by Packet
> > > >    Loss Concealment (PLC), while abrupt loss of RTP packets indicates
> > > >    intended discontinuous transmissions.  Resumption of voice
> > > >    transmission SHOULD be indicated by the RTP marker bit (M) set to 1.
> > > >
> > > >
> > > > Section 10 - Added reference
> > > >
> > > > (added)
> > > >    [RFC8088]  Westerlund, M., "How to Write an RTP Payload Format",
> > > >               RFC 8088, DOI 10.17487/RFC8088, May 2017,
> > > >               <http://www.rfc-editor.org/info/rfc8088>.
> > > >
> > > > --------------------------------------------------------------------
> > > > -----------------------------
> > > >
> > > >
> > > > -----Original Message-----
> > > > From: Roni Even (A) <roni.even@huawei.com>
> > > > Sent: Sunday, October 6, 2019 2:09 AM
> > > > To: victor.demjanenko@vocal.com; 'Benjamin Kaduk' <kaduk@mit.edu>;
> > > > 'The IESG' <iesg@ietf.org>
> > > > Cc: draft-ietf-payload-tsvcis@ietf.org; 'Ali Begen'
> > > > <ali.begen@networked.media>; avtcore-chairs@ietf.org; avt@ietf.org;
> > > > 'Dave Satterlee (Vocal)' <Dave.Satterlee@vocal.com>
> > > > Subject: RE: Benjamin Kaduk's Discuss on
> > > > draft-ietf-payload-tsvcis-03: (with DISCUSS and COMMENT)
> > > >
> > > > Hi,
> > > > About the reference to TSVCIS.
> > > > The RTP payload is about how to encapsulate the payload in an RTP
> > packet. The objective is to define how an RTP stack can insert the tsvcis
> > frames and  extract the tsvcis frames from the RTP packet. Typically it is
> > not required to understand the payload structure in order to be able to
> > perform the encapsulation.
> > > > This is why the reference to the payload is Informational and we did
> > > > not require to have it publically available.  If there is a need to
> > > > understand the payload itself for the encapsulating than we need
> > > > more information in the RTP payload specification and a publically
> > > > available normative reference. I think this is not the case here
> > > >
> > > > Roni Even
> > > >
> > > > AVTCore co-chair (ex Payload)
> > > >
> > > > -----Original Message-----
> > > > From: victor.demjanenko@vocal.com
> > > > [mailto:victor.demjanenko@vocal.com]
> > > > Sent: Saturday, October 05, 2019 12:18 AM
> > > > To: 'Benjamin Kaduk'; 'The IESG'
> > > > Cc: draft-ietf-payload-tsvcis@ietf.org; 'Ali Begen';
> > avtcore-chairs@ietf.org; avt@ietf.org; 'Victor Demjanenko, Ph.D.'; 'Dave
> > Satterlee (Vocal)'
> > > > Subject: RE: Benjamin Kaduk's Discuss on
> > > > draft-ietf-payload-tsvcis-03: (with DISCUSS and COMMENT)
> > > >
> > > > Everyone,
> > > >
> > > > Thanks for the comments.  I think I mis-understood the ambiguity with
> > respect to to changing rates within a RTP packet.  That was not plan.  An
> > RTP packet must have MELP speech frames of the same rate.  What is possible
> > is that the amount of augmented TSVCIS speech data may vary from one speech
> > frame to the next.  This allows for a dynamic VDR as suggested by the NRL
> > paper.  So an RTP packet may have varying TSVCIS data but must always have
> > MELPe 2400 data.
> > > >
> > > > Again backwards parsing is necessary but the timestamp uniformly
> > increments 22.5msec per combined MELP/TSVCIS speech frame.
> > > >
> > > > The NRL is a good public reference on the VDR aspects.  The actual
> > TSVCIS spec we had was FOUO so we could not replicate its detail.  (I
> > believe a later spec is public or at least partially public.  I am trying to
> > get this.)  The opaque data is pretty obvious with the TSVCIS spec in hand.
> > > >
> > > > We will address the issues/concerns raised next week.  Other business
> > had priority.
> > > >
> > > > Thank you and enjoy the weekend.
> > > >
> > > > Regards,
> > > >
> > > > Victor & Dave
> > > >
> > > > -----Original Message-----
> > > > From: Benjamin Kaduk via Datatracker <noreply@ietf.org>
> > > > Sent: Wednesday, October 2, 2019 10:40 PM
> > > > To: The IESG <iesg@ietf.org>
> > > > Cc: draft-ietf-payload-tsvcis@ietf.org; Ali Begen
> > > > <ali.begen@networked.media>; avtcore-chairs@ietf.org;
> > > > ali.begen@networked.media; avt@ietf.org
> > > > Subject: Benjamin Kaduk's Discuss on draft-ietf-payload-tsvcis-03:
> > > > (with DISCUSS and COMMENT)
> > > >
> > > > Benjamin Kaduk has entered the following ballot position for
> > > > draft-ietf-payload-tsvcis-03: Discuss
> > > >
> > > > When responding, please keep the subject line intact and reply to
> > > > all email addresses included in the To and CC lines. (Feel free to
> > > > cut this introductory paragraph, however.)
> > > >
> > > >
> > > > Please refer to
> > > > https://www.ietf.org/iesg/statement/discuss-criteria.html
> > > > for more information about IESG DISCUSS and COMMENT positions.
> > > >
> > > >
> > > > The document, along with other ballot positions, can be found here:
> > > > https://datatracker.ietf.org/doc/draft-ietf-payload-tsvcis/
> > > >
> > > >
> > > >
> > > > --------------------------------------------------------------------
> > > > --
> > > > DISCUSS:
> > > > --------------------------------------------------------------------
> > > > --
> > > >
> > > > I support Magnus' point about the time-ordering of adjacent frames in a
> > packet.
> > > >
> > > > Additionally, I am not sure that there's quite enough here to be
> > interoperably implementable.  Specifically, we seem to be lacking a
> > description of how an encoder or decoder knows which TSVCIS parameters, and
> > in what order, to byte-pack or unpack, respectively.  One might surmise that
> > there is a canonical listing in [TSVCIS], but this document does not say
> > that, and furthermore [TSVCIS] is only listed as an informative reference.
> > (I couldn't get my hands on my copy, at least on short notice.)  If we
> > limited ourselves to treating the TSVCIS parameters as an entirely opaque
> > blob (codec, convey these N octets to the peer with the appropriate one- or
> > two-byte trailer for payload type identification and framing), that would be
> > interoperably implementable, since the black-box bits are up to some other
> > codec to interpret.
> > > >
> > > > In a similar vein, we mention but do not completely specify the
> > potential for using CODB as an end-to-end framing bit, in Section 3.1 (see
> > Comment), which is not interoperably implementable without further details.
> > > >
> > > >
> > > > --------------------------------------------------------------------
> > > > --
> > > > COMMENT:
> > > > --------------------------------------------------------------------
> > > > --
> > > >
> > > > Where is [TSVCIS] available?
> > > >
> > > > Is [NRLVDR] the same as
> > > > https://apps.dtic.mil/dtic/tr/fulltext/u2/a588068.pdf ?  A URL in the
> > references would be helpful.
> > > >
> > > > Is additional TSVCIS data only present after 2400bps MELPe and the first
> > thing to get dropped under bandwidth pressure?  The abstract and
> > introduction imply this by calling out MELPe 2400 bps speech parameters
> > explicitly, but Section 3 says that TSVCIS augments standard 600, 1200, and
> > 2400 bps MELP frames.
> > > >
> > > > It's helpful that Section 3.3 gives some general guidance for decoding
> > this payload type ("[t]he way to determine the number of TSVCIS/MELPe frames
> > is to identify each frame type and length"), but I think some generic
> > considerations would be very helpful to the reader much earlier, along the
> > lines of "MELPe and TSVCIS data payloads are decoded from the end, using the
> > CODA and CODB (and, if necessary, CODC and others) bits to determine the
> > type of payload.  For MELPe payloads the type also indicates the payload
> > length, whereas for TSVCIS data an additional length field is present, in
> > one of two possible formats.  A TSVCIS coder frame consists of a MELPe data
> > payload followed by zero or one TSVCIS data payload; after the TSVCIS
> > payload's presence/length is determined, then the preceding MELPe payload
> > can be determined and decoded.  Per Section 3.3, multiple TSVCIS frames can
> > be present in a single RTP packet."  This (or something like it) would also
> > serve to clarify the role of the COD* bits, which is otherwise only
> > implicitly introduced.
> > > >
> > > > Section 1.1
> > > >
> > > > RFC 2736 is BCP 36 (but it's updated by RFC 8088 which is for some
> > reason an Informational document and not part of BCP 36?!).
> > > >
> > > > Section 2
> > > >
> > > >    In addition to the augmented speech data, the TSVCIS specification
> > > >    identifies which speech coder and framing bits are to be encrypted,
> > > >    and how they are protected by forward error correction (FEC)
> > > >    techniques (using block codes).  At the RTP transport layer, only the
> > > >    speech coder related bits need to be considered and are conveyed in
> > > >    unencrypted form.  In most IP-based network deployments, standard
> > > >
> > > > Am I reading this correctly that this text is just summarizing what's in
> > the TSVCIS spec in terms of what needs to be in unencrypted form, so the
> > "only the speech coder related bits[...]" is not new information from this
> > document?  I'm not sure I agree with the conclusion, regardless -- won't the
> > (MELPe) speech coder bits be enough to convey the semantic content of the
> > audio stream, something that one might desire to keep confidential?
> > > >
> > > >    link encryption methods (SRTP, VPNs, FIPS 140 link encryptors or Type
> > > >    1 Ethernet encryptors) would be used to secure the RTP speech
> > > >    contents.  Further, it is desirable to support the highest voice
> > > >    quality between endpoints which is only possible without the overhead
> > > >    of FEC.
> > > >
> > > > I think I'm missing a step in how this conclusion was reached.
> > > >
> > > >    TSVCIS will be characterized.  Depending on the bandwidth available
> > > >    (and FEC requirements), a varying number of TSVCIS specific speech
> > > >    coder parameters need to be transported.  These are first byte-packed
> > > >    and then conveyed from encoder to decoder.
> > > >
> > > > Per the Discuss point, how do I know which parameters need to be
> > transported, and in what order?
> > > >
> > > >    Byte packing of TSVCIS speech data into packed parameters is
> > > >    processed as per the following example:
> > > >
> > > >       Three-bit field: bits A, B, and C (A is MSB, C is LSB)
> > > >       Five-bit field: bits D, E, F, G, and H (D is MSB, H is LSB)
> > > >
> > > >            MSB                                              LSB
> > > >             0      1      2      3      4      5      6      7
> > > >         +------+------+------+------+------+------+------+------+
> > > >         |   H  |   G  |   F  |   E  |   D  |   C  |   B  |   A  |
> > > >         +------+------+------+------+------+------+------+------+
> > > >
> > > >    This packing method places the three-bit field "first" in the lowest
> > > >    bits followed by the next five-bit field.  Parameters may be split
> > > >    between octets with the most significant bits in the earlier octet.
> > > >    Any unfilled bits in the last octet MUST be filled with zero.
> > > >
> > > > I agree with Adam that this is very unclear.  A is the MSB of the
> > three-bit field but the LSB of the octet overall?
> > > > We probably need an example of splitting a parameter across octets as
> > well, to get the bit ordering right.
> > > >
> > > > Section 3.1
> > > >
> > > >    It should be noted that CODB for both the 2400 and 600 bps modes MAY
> > > >    deviate from the values in Table 1 when bit 55 is used as an end-to-
> > > >    end framing bit.  Frame decoding would remain distinct as CODA
> > > > being
> > > >
> > > > Where is the use of CODB as an end-to-end framing bit defined?  If we're
> > going to provide neither a complete description of how to do it nor a
> > reference to a better description, we probably shouldn't mention it at all.
> > > >
> > > > Section 3.2
> > > >
> > > >    RTP packet.  The packed parameters are counted in octets (TC).  In
> > > >    the preferred placement, shown in Figure 6, a single trailing octet
> > > >    SHALL be appended to include a two-bit rate code, CODA and CODB,
> > > >
> > > > I'd consider saying something about this being the preferred format
> > > > ("placement") due to its shorter length than the alternative, and say
> > that it "SHOULD be used for TSVCIS payloads with TC less than or equal to 77
> > octetes".
> > > >
> > > > Section 3.3
> > > >
> > > > When a longer packetization interval is used, is that indicated by
> > signaling or RTP timestamps or otherwise?
> > > >
> > > >    TSVCIS coder frames in a single RTP packet MAY be of different coder
> > > >    bitrates.  With the exception for the variable length TSVCIS
> > > >    parameter frames, the coder rate bits in the trailing byte identify
> > > >    the contents and length as per Table 1.
> > > >
> > > > Maybe also note that the penultimate octet gives the length there?
> > > >
> > > >    Information describing the number of frames contained in an RTP
> > > >    packet is not transmitted as part of the RTP payload.  The way to
> > > >    determine the number of TSVCIS/MELPe frames is to identify each frame
> > > >    type and length thereby counting the total number of octets within
> > > >    the RTP packet.
> > > >
> > > > terminology nit: if a frame is the combination of MELPe and TSVCIS
> > payload data units then there are two layres of decoding to get a length for
> > the frame, since we have to get the TSVCIS length and then the MELPe length.
> > > >
> > > > Section 4.2
> > > >
> > > >    Parameter "ptime" cannot be used for the purpose of specifying
> > > > the
> > > >
> > > > nit: missing article ("The parameter")
> > > >
> > > >    will be impossible to distinguish which mode is about to be used
> > > >    (e.g., when ptime=68, it would be impossible to distinguish if the
> > > >    packet is carrying one frame of 67.5 ms or three frames of 22.5 ms).
> > > >
> > > > So how is the operating mode determined, then?
> > > > (I think this is the same question I asked above)
> > > >
> > > > Section 4.4
> > > >
> > > >    For example, if offerer bitrates are "2400,600" and answer bitrates
> > > >    are "600,2400", the initial bitrate is 600.  If other bitrates are
> > > >    provided by the answerer, any common bitrate between the offer and
> > > >    answer MAY be used at any time in the future.  Activation of these
> > > >    other common bitrates is beyond the scope of this document.
> > > >
> > > > It seems important to specify whether this requires a new O/A exchange
> > or can be done "spontaneously" by just encoding different frame types.
> > > > (It seems like the latter is possible, on first glance, and this is
> > > > implied by Section 3.3's discussion of mixing them in a single
> > > > packet.)
> > > >
> > > > Section 5
> > > >
> > > > Please expand PLC at first use (not second).
> > > >
> > > > Section 6
> > > >
> > > > I don't understand the PLC usage.  Is the idea that a receiver, on
> > seeing an SSRC gap, constructs fictitious PLC frames to "fill the gap"
> > > > and passes the resulting stream to the decoder?
> > > >
> > > > Section 8
> > > >
> > > >    and important considerations in [RFC7201].  Applications SHOULD use
> > > >    one or more appropriate strong security mechanisms.  The rest of this
> > > >    section discusses the security-impacting properties of the payload
> > > >    format itself.
> > > >
> > > > I thought we described TSVCIS itself (much earlier in the document) as
> > requiring encryption for some data; wouldn't that translate to a "MUST"
> > > > here and not a "SHOULD"?
> > > >
> > > >
> > > >
> >