Re: [Netconf] activate-configured-subecription - WGLC subscribed-notifications-16

Martin Bjorklund <mbj@tail-f.com> Wed, 19 September 2018 09:05 UTC

Return-Path: <mbj@tail-f.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9CD4A130EE1 for <netconf@ietfa.amsl.com>; Wed, 19 Sep 2018 02:05:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham 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 vR396-YOnEex for <netconf@ietfa.amsl.com>; Wed, 19 Sep 2018 02:05:44 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id A8F9D130DDE for <netconf@ietf.org>; Wed, 19 Sep 2018 02:05:44 -0700 (PDT)
Received: from localhost (unknown [173.38.220.61]) by mail.tail-f.com (Postfix) with ESMTPSA id 119D11AE02EF; Wed, 19 Sep 2018 11:05:43 +0200 (CEST)
Date: Wed, 19 Sep 2018 11:05:41 +0200
Message-Id: <20180919.110541.1111834445198880499.mbj@tail-f.com>
To: bill.wu@huawei.com
Cc: evoit=40cisco.com@dmarc.ietf.org, douglas@hubler.us, netconf@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <B8F9A780D330094D99AF023C5877DABA9B04B604@nkgeml513-mbx.china.huawei.com>
References: <B8F9A780D330094D99AF023C5877DABA9B04B16C@nkgeml513-mbx.china.huawei.com> <20180919.092522.1558587282279688362.mbj@tail-f.com> <B8F9A780D330094D99AF023C5877DABA9B04B604@nkgeml513-mbx.china.huawei.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="utf-8"
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/UUVC5PpYqu9nzt55I17WwboLnVw>
Subject: Re: [Netconf] activate-configured-subecription - WGLC subscribed-notifications-16
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 19 Sep 2018 09:05:47 -0000

Qin Wu <bill.wu@huawei.com> wrote:
> 
> 
> -----邮件原件-----
> 发件人: Martin Bjorklund [mailto:mbj@tail-f.com] 
> 发送时间: 2018年9月19日 15:25
> 收件人: Qin Wu
> 抄送: evoit=40cisco.com@dmarc.ietf.org; douglas@hubler.us;
> netconf@ietf.org
> 主题: Re: [Netconf] activate-configured-subecription - WGLC
> subscribed-notifications-16
> 
> Qin Wu <bill.wu@huawei.com> wrote:
> > 
> > 发件人: Netconf [mailto:netconf-bounces@ietf.org] 代表 Eric Voit
> > (evoit)
> > 发送时间: 2018年9月19日 6:44
> > 收件人: Douglas Hubler; Martin Bjorklund
> > 抄送: netconf@ietf.org
> > 主题: Re: [Netconf] activate-configured-subecription - WGLC
> > subscribed-notifications-16
> > 
> > Hi Douglas,
> > 
> > From: Douglas Hubler, September 18, 2018 5:35 PM
> > 
> > On Tue, Sep 18, 2018 at 3:40 PM Martin Bjorklund 
> > <mbj@tail-f.com<mailto:mbj@tail-f.com>> wrote:
> > So it seems you support my point to make this draft use SSE.  Then if 
> > you use HTTP/2 you (the client) can simply create one HTTP/2 stream 
> > per notification stream.  This just falls out for free with HTTP/2.
> > 
> > yes, with caveat that I haven't attempted actual implementation yet.
> > 
> > <Eric> Agree that SSE over HTTP2 should work.  However to me using SSE
> > here seems redundant as HTTP2 provides the necessary mechanisms.  But 
> > I won’t get in the way if people really do want to go in this 
> > direction.
> > 
> > [Qin]: HTTP2 provides Server Push mechanism however there are lots of 
> > drawbacks, typical one is Server Push may be blocked, therefore 
> > HTTP1.1+ SSE is favored.
> 
> But HTTP/2 server push doesn't even address the same problem; how to
> get a stream of notifs sent from the server to the client.  If I'm not
> mistaken, server push could be done w/ the GET of the SSE stream, so
> maybe server push could be used to avoid the round trip:
> 
>     client                              server
>     ------                              ------
>       |      establish-subscription    
>       |      ------------------------>    |
>       |                                   |
>       |         OK, location=SSE URL      |
>       |      <------------------------    |
>       |         PUSH_PROMISE,             |
>       |           new stream, SSE URL     |
>       |      <------------------------    |
>       |           SSE event (notif)       |
>       |      <------------------------    |
>       |           SSE event (notif)       |
>       |      <------------------------    |
>       |                                   |
>             
> [Qin]: Yes, HTTP/2 server push can save round trip, but if HTTP/2
> server push is used, two channels need to be established, one for
> establish-subscription,
> One for HTTP/2 Server Push, not sure the sequence of work flow here is
> correct

In the diagram I wrote "PUSH_PROMISE new stream" which was supposed to
indicate that the PUSH (and subsequent data) are sent in a new stream.

> , first how does establish-subscription RPC indicate server
> push support, how does server know server push should be used for
> response.

This is not specific to this draft, it is a generic HTTP/2 question,
right?  If I'm not mistaken this is taken care of by the HTTP/2 spec.

> Second, SSE event and OK, PUSH-PROMISE should be established in
> another channel or HTTP connection?

Yes, another stream, see above.

> HTTP server push has two typical drawbacks:
> 1. HTTP/2 does not guarantee that pushed resources are delivered
>    to the client in the order they were sent by the client
> 2.Server Push is optional and can be disabled by any proxy between the
> client and the server.

Again, this is a generic HTTP/2 PUSH issue.  If the client doesn't
recveive the PUSH_PROMISE, it would have to send a GET as usual.

> Therefore HTTP/2 Server Push is not desirable comparing with
> HTTP1.1+SSE

Note that the diagram above assumes HTTP/2 + SSE.  It just shows how
PUSH_PROMISE could be used with HTTP/2 + SSE.



/martin