Re: [tsvwg] Prague requirements survey

Bob Briscoe <ietf@bobbriscoe.net> Wed, 12 May 2021 15:04 UTC

Return-Path: <ietf@bobbriscoe.net>
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 42CC33A091B for <tsvwg@ietfa.amsl.com>; Wed, 12 May 2021 08:04:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.252
X-Spam-Level: *
X-Spam-Status: No, score=1.252 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, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, MANY_SPAN_IN_TEXT=2.585, NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, SPF_SOFTFAIL=0.665, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=bobbriscoe.net
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 vGX2LvExAOSf for <tsvwg@ietfa.amsl.com>; Wed, 12 May 2021 08:03:58 -0700 (PDT)
Received: from mail-ssdrsserver2.hosting.co.uk (mail-ssdrsserver2.hosting.co.uk [185.185.85.90]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 964223A090D for <tsvwg@ietf.org>; Wed, 12 May 2021 08:03:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bobbriscoe.net; s=default; h=Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=slU7SwwfpCCDoJcVS7SRB7r2psNFmGh+1ybUgXO76Lc=; b=eh5ra6bDNsD387AuYeOkIPyKWW myB/HD6xqJMWNUDZjAcPmjs6nWRB4qmQbXTY08I4WS0HhY1JWgffeY5v4Z9h5C4tds46Rg4kifEKi YRzixDQmohlyz/Kxa43llqgexvdbD0RV3bvReHDXPGA4DI881t6o9xRBywqhR25lBJI9sAm0xwvKW HvGArYhiNO1RcTXiyO9r5THMT7EBPRWhRzXZ7Ys9p+WAcOtcWtsBBCOC0+ULmaARoNqvQbsdnw/1S nGOhCtub3CtChyam2cZNLqeUHHWg6Qo76h8xkoCAViwTYYEDaPBbg/QgPB82THcGE2LJDfvUTz0Km oX41AzRg==;
Received: from 67.153.238.178.in-addr.arpa ([178.238.153.67]:40908 helo=[192.168.1.11]) by ssdrsserver2.hosting.co.uk with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from <ietf@bobbriscoe.net>) id 1lgqP1-0001Md-St; Wed, 12 May 2021 16:03:54 +0100
To: Vidhi Goel <vidhi_goel=40apple.com@dmarc.ietf.org>
Cc: tsvwg IETF list <tsvwg@ietf.org>, Nandita Dukkipati <nanditad@google.com>, Praveen Balasubramanian <pravb@microsoft.com>, Priyaranjan Jha <priyarjha@google.com>
References: <AM8PR07MB7476A907FDD0A49ADBD7CA7EB9BD0@AM8PR07MB7476.eurprd07.prod.outlook.com> <SN2PR00MB017475FC0E8C13754E531E17B6B69@SN2PR00MB0174.namprd00.prod.outlook.com> <AM8PR07MB7476FAE559719D241375A816B9B19@AM8PR07MB7476.eurprd07.prod.outlook.com> <HE1PR0701MB22999C8C05ECA3D995FA7FFEC28F9@HE1PR0701MB2299.eurprd07.prod.outlook.com> <AM8PR07MB7476E0EB3FC368D3C69A5466B98F9@AM8PR07MB7476.eurprd07.prod.outlook.com> <DBBPR07MB7481E1026CDE30D494856F15B9989@DBBPR07MB7481.eurprd07.prod.outlook.com> <AM8PR07MB7476FAEF53518DBFE457AC62B9949@AM8PR07MB7476.eurprd07.prod.outlook.com> <AM8PR07MB747629F14C5AEC5B47F40F56B94C9@AM8PR07MB7476.eurprd07.prod.outlook.com> <CADVnQymOaDGhvgekUjput3s454s-7=_+_vAtRkubX82uQQB=TQ@mail.gmail.com> <F52889B5-CA1B-46AD-8C6B-26E463FCB518@apple.com> <AM8PR07MB74765135C2EDFCACBAAF5DD8B94A9@AM8PR07MB7476.eurprd07.prod.outlook.com> <403ddc8b-c499-9d43-4b07-f34195341363@bobbriscoe.net> <FE1E8821-C56A-4A9C-A9CE-304357682FBB@apple.com>
From: Bob Briscoe <ietf@bobbriscoe.net>
Message-ID: <e58441c6-1ed0-6505-99a0-02dc1410aec4@bobbriscoe.net>
Date: Wed, 12 May 2021 16:03:52 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1
MIME-Version: 1.0
In-Reply-To: <FE1E8821-C56A-4A9C-A9CE-304357682FBB@apple.com>
Content-Type: multipart/alternative; boundary="------------5CA9B9C80E4B5E80123EB34D"
Content-Language: en-GB
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - ssdrsserver2.hosting.co.uk
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - bobbriscoe.net
X-Get-Message-Sender-Via: ssdrsserver2.hosting.co.uk: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: ssdrsserver2.hosting.co.uk: in@bobbriscoe.net
X-Source:
X-Source-Args:
X-Source-Dir:
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/eQYmJ0M0s2v89lTDmnM0jfmtgc4>
Subject: Re: [tsvwg] Prague requirements survey
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.29
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: <https://mailarchive.ietf.org/arch/browse/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: Wed, 12 May 2021 15:04:03 -0000

Vidhi,

On 11/05/2021 07:58, Vidhi Goel wrote:
>> [BB] I've made it clear this is in the context of loss detection, 
>> which otherwise isn't mentioned:
>>
>> a scalable congestion control's loss detection SHOULD be resilient to...
>>
>> I've continued the bullet with the unchanged rationale text and the 
>> unchanged exception at the end, as below:
>>
>>        As packet rates increase (e.g., due to new and/
>>        or improved technology), congestion controls that detect loss by
>>        counting in units of packets become more likely to incorrectly
>>        treat reordering events as congestion-caused loss events (see
>>        Appendix A.1.7 for further rationale).  This requirement does not
>>        apply to congestion controls that are solely used in controlled
>>        environments where the network introduces hardly any reordering.
>
>
> Thanks Bob. Minor edit suggestion is to replace packet rates with data 
> rates and remove the text in the bracket as that seems a bit obvious,
> `As data rates increase, congestion controls …`

[BB]
1) I had thought the appropriate metric was packet rate, but thinking 
about it more carefully, you're right. Even if only data rate but not 
packet rate increased, e.g. 'cos in future somehow we work out how to 
make packet size scale with data rate, bonded links would still become 
more prone to reordering. I was thinking reordering is about the 
inter-arrival time (between the ends of different packets), but 
reordering occurs when the /start/ of one packet overtakes the /end/ of 
another.

2) I was just about to take out the obvious parenthesis, but then I 
remembered I had added it to make it clear this does not mean "as data 
rate increases (during a connection)". So I'll leave that.

Cheers



Bob

>
>
> Thanks,
> Vidhi
>
>> On May 6, 2021, at 2:49 PM, Bob Briscoe <in@bobbriscoe.net 
>> <mailto:in@bobbriscoe.net>> wrote:
>>
>> Koen, eal, Vidhi,
>> Just checking I've understood what you intended, while I'm committing 
>> the proposed text to the draft. See [BB] inline...
>>
>> On 18/04/2021 09:41, De Schepper, Koen (Nokia - BE/Antwerp) wrote:
>>> Ok, then we’ll take that wording and we can close this topic. Thanks 
>>> both.
>>> Koen.
>>> *From:*Vidhi Goel<vidhi_goel@apple.com>
>>> *Sent:*Friday, April 16, 2021 11:14 PM
>>> *To:*Neal Cardwell<ncardwell@google.com>
>>> *Cc:*De Schepper, Koen (Nokia - 
>>> BE/Antwerp)<koen.de_schepper@nokia-bell-labs.com>om>; tsvwg IETF 
>>> list<tsvwg@ietf.org>rg>; Christoph Paasch<cpaasch@apple.com>om>; Yuchung 
>>> Cheng<ycheng@google.com>om>; Praveen 
>>> Balasubramanian<pravb@microsoft.com>om>; Randall 
>>> Stewart<rrs@netflix.com>om>; Priyaranjan Jha<priyarjha@google.com>om>; 
>>> Nandita Dukkipati<nanditad@google.com>
>>> *Subject:*Re: [tsvwg] Prague requirements survey
>>>
>>>     IMHO Koen's suggested alternate text for this requirement is
>>>     quite good. Here is a spin on Koen's text that sounds good to me
>>>     and explicitly mentions that RACK/RFC8985 qualifies as meeting
>>>     this requirement:
>>>
>>>          a scalable congestion control SHOULD be resilient to
>>>          reordering over an adaptive time interval that scales with
>>>          throughput and adapts to reordering (as in [RFC8985]), as
>>>          opposed to counting only in fixed units of packets (as in
>>>          the 3 DupACK rule of [RFC5681] and [RFC6675], which is not
>>>          scalable)
>>>
>>> Thanks Neal. This wording works for me.
>>
>> [BB] I've made it clear this is in the context of loss detection, 
>> which otherwise isn't mentioned:
>>
>>               a scalable congestion control's loss detection SHOULD 
>> be resilient to...
>>
>> I've continued the bullet with the unchanged rationale text and the 
>> unchanged exception at the end, as below:
>>
>>        As packet rates increase (e.g., due to new and/
>>        or improved technology), congestion controls that detect loss by
>>        counting in units of packets become more likely to incorrectly
>>        treat reordering events as congestion-caused loss events (see
>>        Appendix A.1.7 for further rationale).  This requirement does not
>>        apply to congestion controls that are solely used in controlled
>>        environments where the network introduces hardly any reordering.
>>
>>
>> Bob
>>
>>
>>>
>>>
>>>     On Apr 16, 2021, at 7:08 AM, Neal Cardwell <ncardwell@google.com
>>>     <mailto:ncardwell@google.com>> wrote:
>>>     On Fri, Apr 16, 2021 at 8:53 AM De Schepper, Koen (Nokia -
>>>     BE/Antwerp) <koen.de_schepper@nokia-bell-labs.com
>>>     <mailto:koen.de_schepper@nokia-bell-labs.com>> wrote:
>>>
>>>         Hi all,
>>>         An update on the survey is available. We received an
>>>         additional input from Apple which we could publicly share
>>>         (thanks Vidhi for providing this input). I also updated the
>>>         consolidated view v2 (available
>>>         onhttps://github.com/L4STeam/l4steam.github.io#prague-requirements-compliance
>>>         <https://github.com/L4STeam/l4steam.github.io#prague-requirements-compliance>).
>>>         I believe it is strongly in line with the previous survey
>>>         conclusions as presented in last tsvwg. One main additional
>>>         feedback was on “7. Measuring Reordering Tolerance in Time
>>>         Units”. There was disagreement that using time only and not
>>>         packet count is a foolproof solution.As far as I understand
>>>         the objection is to the current wording that a time based
>>>         mechanism is the only/sufficient way to assure this.
>>>         The objective of this requirement is to allow a certain
>>>         level of reordering for L4S traffic (actually avoid delaying
>>>         packets in the network to guarantee correct order of packet
>>>         delivery). I personally could support wording that expresses
>>>         the core of the requirement, and not limit the text to one
>>>         mechanism, which would allow alternative/more robust
>>>         implementations. The requirement could be expressed as
>>>         something like: “a scalable congestion control SHOULD  be
>>>         resilient to reordering over an (adaptive) (time?) interval,
>>>         which scales with / adapts to throughput, as opposed to
>>>         counting only in (fixed) units of packets (as in the 3
>>>         DupACK rule of RFC 5681 TCP), which is not scalable”. Let’s
>>>         further discuss here on the list what could be for all
>>>         parties an acceptable wording.
>>>
>>>     Thanks for posting this, Koen and Vidhi.
>>>     Regarding Apple's Prague response that you posted:
>>>
>>>     https://l4steam.github.io/PragueReqs/Apple_L4S_requirements_Compliance_and_Objections.pdf
>>>     <https://l4steam.github.io/PragueReqs/Apple_L4S_requirements_Compliance_and_Objections.pdf>
>>>
>>>     And specifically regarding the response about a reordering
>>>     tolerance in time units:
>>>
>>>          Disagree that using time only and not packet count is a
>>>          foolproof solution. What if the time threshold value cause
>>>          slow recovery in case of an actual packet loss event? Would
>>>          it be better to use either packet count or time threshold? We
>>>          currently don't support RACK - so time based loss detection
>>>          wouldn't be possible.
>>>
>>>     I would agree that detecting losses purely based on a time
>>>     threshold value can cause slower recovery in case of an actual
>>>     packet loss event. And this can be needless delay if the path
>>>     actually has no reordering.
>>>
>>>     But it may be worth noting that in RACK-TLP loss detection [
>>>     https://tools.ietf.org/html/rfc8985
>>>     <https://tools.ietf.org/html/rfc8985>] if no reordering has been
>>>     observed on the connection then the loss detection mechanism will
>>>     trigger based on packet count (DupThresh=3 segments SACKed).
>>>     RACK-TLP only uses time-based triggering of recovery if
>>>     reordering has been observed on the connection. This strikes a
>>>     balance between quick loss recovery for paths with no reordering,
>>>     and reordering tolerance for paths with reordering. So in effect
>>>     RACK-TLP does use the approach urged above ("Would it be better
>>>     to use either packet count or time threshold?")
>>>
>>>     I agree it is worth clarifying in the Prague requirements whether
>>>     it is required that loss detection *always* be based on time
>>>     units, or whether it is acceptable to use an adaptive approach
>>>     like the RACK-TLP approach outlined above (as specified in
>>>     RFC8985 and implemented in Linux TCP).
>>>
>>>     IMHO Koen's suggested alternate text for this requirement is
>>>     quite good. Here is a spin on Koen's text that sounds good to me
>>>     and explicitly mentions that RACK/RFC8985 qualifies as meeting
>>>     this requirement:
>>>
>>>          a scalable congestion control SHOULD be resilient to
>>>          reordering over an adaptive time interval that scales with
>>>          throughput and adapts to reordering (as in [RFC8985]), as
>>>          opposed to counting only in fixed units of packets (as in
>>>          the 3 DupACK rule of [RFC5681] and [RFC6675], which is not
>>>          scalable)
>>>
>>>     best,
>>>     neal
>>>
>>>         Thanks,
>>>         Koen.
>>>         *From:*De Schepper, Koen (Nokia - BE/Antwerp)
>>>         *Sent:*Sunday, March 7, 2021 1:57 AM
>>>         *To:*De Schepper, Koen (Nokia - BE/Antwerp)
>>>         <koen.de_schepper@nokia-bell-labs.com
>>>         <mailto:koen.de_schepper@nokia-bell-labs.com>>; tsvwg IETF
>>>         list <tsvwg@ietf.org <mailto:tsvwg@ietf.org>>
>>>         *Cc:*Bob Briscoe <ietf@bobbriscoe.net
>>>         <mailto:ietf@bobbriscoe.net>>
>>>         *Subject:*RE: Prague requirements survey
>>>         Hi all,
>>>         The details of the consolidated view of all feedback
>>>         received is available and can be found via following
>>>         link:https://l4steam.github.io/PragueReqs/Prague_requirements_consolidated.pdf
>>>         <https://l4steam.github.io/PragueReqs/Prague_requirements_consolidated.pdf>
>>>         The only strong objections were against the “MUST document”
>>>         requirements, which will be removed from the next version of
>>>         the draft. Some clarifications were asked and (will be) added.
>>>         For 2 requirements a big consensus was that they should be
>>>         developed and evolved as needed during the experiment.
>>>         All other requirements had already implementations and if
>>>         not, were seen feasible/realizable and were planned to be
>>>         implemented.
>>>         We will present an overview during the meeting.
>>>         Regards,
>>>         Koen.
>>>         *From:*tsvwg <tsvwg-bounces@ietf.org
>>>         <mailto:tsvwg-bounces@ietf.org>>*On Behalf Of*De Schepper,
>>>         Koen (Nokia - BE/Antwerp)
>>>         *Sent:*Wednesday, March 3, 2021 2:20 PM
>>>         *To:*tsvwg IETF list <tsvwg@ietf.org <mailto:tsvwg@ietf.org>>
>>>         *Subject:*Re: [tsvwg] Prague requirements survey
>>>         Hi all,
>>>         We have received several surveys privately, for which I
>>>         tried to get the approval for sharing those on the overview
>>>         page:l4steam.github.io | L4S-related experiments and
>>>         companion website
>>>         <https://l4steam.github.io/#prague-requirements-compliance>
>>>         Thanks to NVIDIA for sharing their view and feedback for
>>>         their GeforceNow congestion control. Their feedback was
>>>         added to the above overview about a week ago. As we didn’t
>>>         get the explicit approval for the others, we will share and
>>>         present a consolidated view of all feedback received later
>>>         and during the meeting.
>>>         Note: pdf versions are now also available on the above page
>>>         for easier reading.
>>>         Koen.
>>>         *From:*tsvwg <tsvwg-bounces@ietf.org
>>>         <mailto:tsvwg-bounces@ietf.org>>*On Behalf Of*De Schepper,
>>>         Koen (Nokia - BE/Antwerp)
>>>         *Sent:*Monday, February 8, 2021 2:37 PM
>>>         *To:*Ingemar Johansson S <ingemar.s.johansson@ericsson.com
>>>         <mailto:ingemar.s.johansson@ericsson.com>>; tsvwg IETF list
>>>         <tsvwg@ietf.org <mailto:tsvwg@ietf.org>>
>>>         *Subject:*Re: [tsvwg] Prague requirements survey
>>>         Hi Ingemar,
>>>         Thanks for your contributions. I linked your doc to
>>>         thehttps://l4steam.github.io/#prague-requirements-compliance
>>>         <https://l4steam.github.io/#prague-requirements-compliance>web
>>>         page (and will do so for others).
>>>         I didn’t see any issues or objections mentioned to the
>>>         current requirements as specified in the draft. Does this
>>>         mean you think they are all reasonable, valid and feasible?
>>>         Interesting observation (related to the performance
>>>         optimization topic 1) that for the control packets “RTCP is
>>>         likely not using ECT(1)”. Why is this not likely? I assume
>>>         this will impact the performance? Do we need to recommend
>>>         the use of ECT(1) on RTCP packets in the draft?
>>>         Thanks,
>>>         Koen.
>>>         *From:*Ingemar Johansson S <ingemar.s.johansson@ericsson.com
>>>         <mailto:ingemar.s.johansson@ericsson.com>>
>>>         *Sent:*Monday, February 8, 2021 10:59 AM
>>>         *To:*De Schepper, Koen (Nokia - BE/Antwerp)
>>>         <koen.de_schepper@nokia-bell-labs.com
>>>         <mailto:koen.de_schepper@nokia-bell-labs.com>>; tsvwg IETF
>>>         list <tsvwg@ietf.org <mailto:tsvwg@ietf.org>>
>>>         *Cc:*Ingemar Johansson S <ingemar.s.johansson@ericsson.com
>>>         <mailto:ingemar.s.johansson@ericsson.com>>
>>>         *Subject:*RE: Prague requirements survey
>>>         Hi
>>>         Please find attached (hopefully) a Prague requirements
>>>         survey applied to SCReAM (RFC8298 std + running code)
>>>         Regards
>>>         Ingemar
>>>         *From:*tsvwg <tsvwg-bounces@ietf.org
>>>         <mailto:tsvwg-bounces@ietf.org>>*On Behalf Of*De Schepper,
>>>         Koen (Nokia - BE/Antwerp)
>>>         *Sent:*den 6 februari 2021 23:20
>>>         *To:*tsvwg IETF list <tsvwg@ietf.org <mailto:tsvwg@ietf.org>>
>>>         *Subject:*[tsvwg] Prague requirements survey
>>>         Hi all,
>>>         To get a better understanding on the level of consensus on
>>>         the Prague requirements, we prepared an overview document
>>>         listing the L4S-ID draft requirements specific to the CC
>>>         (wider Prague requirements), as a questionnaire towards
>>>         potential CC developers. If you are developing or have
>>>         developed an L4S congestion control, you can describe the
>>>         status of your ongoing development in the second last
>>>         column. If you cannot share status, or plan-to/would
>>>         implement an L4S CC, you can list what you would want to
>>>         support (see feasible). In the last column you can put any
>>>         description/limitations/remarks/explanations related to
>>>         evaluations, implementations and/or plans (will implement or
>>>         will not implement).Any expected or experienced issuesandany
>>>         objections/disagreements to the requirementcan be explained
>>>         and colored appropriately.
>>>         The document can be found on following
>>>         link:https://raw.githubusercontent.com/L4STeam/l4steam.github.io/master/PragueReqs/Prague_requirements_Compliance_and_Objections_template.docx
>>>         <https://protect2.fireeye.com/v1/url?k=d16bc960-8ef0f066-d16b89fb-86ee86bd5107-080c65bfd839440d&q=1&e=7dbb7494-67c3-4315-88a6-325f32e4e8b1&u=https%3A%2F%2Fraw.githubusercontent.com%2FL4STeam%2Fl4steam.github.io%2Fmaster%2FPragueReqs%2FPrague_requirements_Compliance_and_Objections_template.docx>
>>>         As an example I filled it for the Linux TCP-Prague
>>>         implementation on following
>>>         link:https://l4steam.github.io/PragueReqs/Prague_requirements_Compliance_and_Objections_Linux_TCP-Prague.docx
>>>         <https://protect2.fireeye.com/v1/url?k=f839c5f7-a7a2fcf1-f839856c-86ee86bd5107-29dabadc5d0e673d&q=1&e=7dbb7494-67c3-4315-88a6-325f32e4e8b1&u=https%3A%2F%2Fl4steam.github.io%2FPragueReqs%2FPrague_requirements_Compliance_and_Objections_Linux_TCP-Prague.docx>
>>>         Please send your filled document to the list (Not sure if an
>>>         attachment will work, so I assume you also need to store it
>>>         somewhere and send a link to it, or send to me directly).
>>>         We hope to collect many answers, understanding the position
>>>         of the different (potential) implementers and come faster to
>>>         consensus.
>>>         Thanks,
>>>         Koen.
>>>
>>
>> -- 
>> ________________________________________________________________
>> Bob Briscoehttp://bobbriscoe.net/
>

-- 
________________________________________________________________
Bob Briscoe                               http://bobbriscoe.net/