RE: Apparent SCTP API oversights, draft-ietf-tsvwg-sctpsocket-30

"Dan Wing" <dwing@cisco.com> Tue, 09 August 2011 22:35 UTC

Return-Path: <dwing@cisco.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5ADF821F8C35 for <tsvwg@ietfa.amsl.com>; Tue, 9 Aug 2011 15:35:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -103.503
X-Spam-Level:
X-Spam-Status: No, score=-103.503 tagged_above=-999 required=5 tests=[AWL=-0.904, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BYHhoiAVzFwi for <tsvwg@ietfa.amsl.com>; Tue, 9 Aug 2011 15:35:02 -0700 (PDT)
Received: from rcdn-iport-4.cisco.com (rcdn-iport-4.cisco.com [173.37.86.75]) by ietfa.amsl.com (Postfix) with ESMTP id 12FCE21F8C3A for <tsvwg@ietf.org>; Tue, 9 Aug 2011 15:35:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=dwing@cisco.com; l=6704; q=dns/txt; s=iport; t=1312929332; x=1314138932; h=from:to:cc:references:in-reply-to:subject:date: message-id:mime-version:content-transfer-encoding; bh=eHgp3xfTuFaCNrCKwEnM/Xw28HqMwxB7A/r3OyfLWn0=; b=N/+9WMBljutq59xayiXdVqj8guLOSPQuwn8X9Sx3V+xgi0bHgs/Yo2Uv RluI/O7XSdhtHD6chtzivy0lnWceHkjOmIosUKj/0/EJYzqN8E3xhaO3O QS5TT3lwr9EaaCgVNtzfvGLGrEv9A+QuC8Kn+cfkO9VVt3bsOgsVJwTZb I=;
X-IronPort-AV: E=Sophos;i="4.67,345,1309737600"; d="scan'208";a="11514674"
Received: from mtv-core-2.cisco.com ([171.68.58.7]) by rcdn-iport-4.cisco.com with ESMTP; 09 Aug 2011 22:35:31 +0000
Received: from dwingWS ([10.21.76.82]) by mtv-core-2.cisco.com (8.14.3/8.14.3) with ESMTP id p79MZUV9012649; Tue, 9 Aug 2011 22:35:30 GMT
From: Dan Wing <dwing@cisco.com>
To: 'Michael Tuexen' <tuexen@fh-muenster.de>
References: <026301cc5303$611e3a40$235aaec0$@com> <F7033253-9CC1-46C5-AC5B-7DBE68860456@fh-muenster.de>
In-Reply-To: <F7033253-9CC1-46C5-AC5B-7DBE68860456@fh-muenster.de>
Subject: RE: Apparent SCTP API oversights, draft-ietf-tsvwg-sctpsocket-30
Date: Tue, 09 Aug 2011 15:35:30 -0700
Message-ID: <051901cc56e4$a52a5950$ef7f0bf0$@com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: AcxW2FB6VFH+9BF1RpuI8lqNTobAcAAC9RFg
Content-Language: en-us
Cc: ka-cheong.poon@oracle.com, tsvwg@ietf.org, vladislav.yasevich@hp.com, draft-ietf-tsvwg-sctpsocket@tools.ietf.org, "'Peter Lei (peterlei)'" <peterlei@cisco.com>, randall@lakerest.net
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tsvwg>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 09 Aug 2011 22:35:03 -0000

Yes, thanks.  

With the datastructure renamed from spp_ipv4_tos to spp_dscp, I assume you
would also change prose from ToS to DSCP?

#grep -nE "tos|ToS|TOS" draft-ietf-tsvwg-sctpsocket-30.txt
3825:     uint8_t spp_ipv4_tos;
3872:   spp_ipv4_tos:  This field is used in conjunction with the
3873:      SPP_IPV4_TOS flag.  This setting has precedence over any IPv4
3924:      SPP_IPV4_TOS:  Setting this flag enables the setting of the IPV4
3925:         TOS value associated with either the association or a specific
3926:         address.  The value is obtained in the spp_ipv4_tos field.
3929:         spp_ipv4_tos field has a valid value returned.  If a specific
3931:         field) then that specific destination address' TOS value is
3933:         association default TOS is returned.  If neither an
association
3934:         nor a destination is specified, then the sockets default TOS
is

-d

> -----Original Message-----
> From: Michael Tuexen [mailto:tuexen@fh-muenster.de]
> Sent: Tuesday, August 09, 2011 2:07 PM
> To: Dan Wing
> Cc: draft-ietf-tsvwg-sctpsocket@tools.ietf.org; tsvwg@ietf.org;
> randall@lakerest.net; ka-cheong.poon@oracle.com; 'Peter Lei
> (peterlei)'; vladislav.yasevich@hp.com
> Subject: Re: Apparent SCTP API oversights, draft-ietf-tsvwg-sctpsocket-
> 30
> 
> Hi Dan,
> 
> based on the discussion, I suggest the following text changes:
> On Aug 5, 2011, at 2:05 AM, Dan Wing wrote:
> 
> > I would like clarification on my misunderstanding, or changes
> > to draft-ietf-tsvwg-sctpsocket, to accommodate what appear to
> > be some oversights in the SCTP API:
> >
> > 1. The infotype parameter of sctp_sendv() allows indicating if the
> > data should be sent with partial reliability or full reliability
> > using sctp_prinfo.  However, there does not appear to be a way to
> > adjust the IPv4 or IPv6 DSCP bits when switching between
> > full/partial reliablity, except by modifying the entire
> > association itself (using spp_ipv4_tos).  This is quite limiting.
> No changes.
> >
> >
> > 2. When modifying an association (e.g., to have different DSCP
> > value), I could not find text in draft-ietf-tsvwg-sctpsocket-30 that
> > indicates if the modification applies immediately (including to
> > packets queued and to packets not yet acknowledged by the
> > receiver) or if the modification applies to subsequent calls
> > to send().
> >
> > This means that to attempt to work around (1), it isn't clear
> > if the API would permit me to modify the association's DSCP
> > value, call send(), and know that payload will be sent with
> > the desired DSCP value.
> I added at the end of section 8.1.12:
> <t>Please note that changing the flowlabel or DSCP value will affect
> all packets sent by the SCTP stack after setting these parameters.
> The flowlabel might also be set via the sin6_flowinfo field of the
> struct socketaddr_in6 structure.</t>
> >
> >
> > 3. Related to (1), it is desirable that full reliable packets not
> > be bundled with partial reliability packets, so that they can have
> > different DSCP markings.
> >
> > http://tools.ietf.org/html/rfc4960#section-10.1 mentions a no-bundle
> > flag.  However, I could not find in draft-ietf-tsvwg-sctpsocket-30
> > where this is controlled; it appears the API lacks this ability.
> I added to section 8.1.5:
> In particular, not using any Nagle-like algorithm might
> reduce the bundling of small user messages in cases where this
> would require an additional delay.</t>
> >
> >
> > 4. draft-ietf-tsvwg-sctpsocket-30 uses the archaic term ToS
> > rather than DSCP.  At a minimum, to ease string searching, please
> > add text near spp_ipv4_tos something like "This is also called the
> > DSCP field [RFC2474]".  I would prefer, though, that
> > draft-ietf-tsvwg-sctpsocket-30 use the term DSCP in compliance
> > with RFC3260 and other DiffServ documents.
> >
> >
> > 5. I believe it is an oversight that draft-ietf-tsvwg-sctpsocket-30
> > provides a way to adjust the IPv4 ToS (spp_ipv4_tos) and the IPv6
> > flow label (spp_ipv6_flowlabel), but lacks a way to query or adjust
> > the IPv6 Traffic Class field.  Please correct this oversight or
> > add text justifying the inability to adjust the IPv6 Traffic Class
> > field.
> The stuff now reads:
> struct sctp_paddrparams {
>   sctp_assoc_t spp_assoc_id;
>   struct sockaddr_storage spp_address;
>   uint32_t spp_hbinterval;
>   uint16_t spp_pathmaxrxt;
>   uint32_t spp_pathmtu;
>   uint32_t spp_flags;
>   uint32_t spp_ipv6_flowlabel;
>   uint8_t spp_dscp;
> };
> 
> <t hangText="spp_ipv6_flowlabel:">
> This field is used in conjunction with the SPP_IPV6_FLOWLABEL flag
> and contains the IPv6 flowlabel. The 20 least significant bits are
> used for the flowlabel.
> This setting has precedence over any IPv6 layer setting.</t>
> <t hangText="spp_dscp:">
> This field is used in conjunction with the SPP_DSCP flag and
> contains the Differentiated Services Code Point (DSCP).
> The 6 least significant bits are used for the DSCP.
> This setting has precedence over any IPv4 or IPv6 layer setting.</t>
> 
> ...
> <t hangText="SPP_IPV6_FLOWLABEL:">
> Setting this flag enables the setting of the IPV6 flowlabel value.
> The value is contained in the spp_ipv6_flowlabel field.
> <vspace blankLines="1"/>
> Upon retrieval, this flag will be set to indicate that the
> spp_ipv6_flowlabel
> field has a valid value returned. If a specific destination address is
> set (in the spp_address field), then the value returned is that
> of the address. If just an association is specified (and no address),
> then
> the association's default flowlabel is returned. If neither an
> association nor a
> destination is specified, then the socket's default flowlabel is
> returned.
> For non IPv6 sockets, this flag will be left cleared.</t>
> <t hangText="SPP_DSCP:"> Setting this flag enables the setting of
> the DSCP value associated with
> either the association or a specific address.
> The value is obtained in the spp_dscp field.
> <vspace blankLines="1"/>
> Upon retrieval, this flag will be set to indicate that the spp_dscp
> field
> has a valid value returned. If a specific destination address is set
> when
> called (in the spp_address field) then that specific destination
> address'
> DSCP value is returned. If just an association is specified then
> the association default DSCP is returned. If neither an association nor
> a
> destination is specified, then the sockets default DSCP is
> returned.</t>
> 
> Does this address your issues?
> 
> Best regards
> Michael
> >
> > -d
> >
> >
> >