Re: [Netconf] a joint discussion on dynamic subscription

Martin Bjorklund <mbj@tail-f.com> Thu, 14 June 2018 08:37 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 1B1B0130ECC for <netconf@ietfa.amsl.com>; Thu, 14 Jun 2018 01:37:50 -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 WAQImhG3CwKh for <netconf@ietfa.amsl.com>; Thu, 14 Jun 2018 01:37:47 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id C0E67130DF9 for <netconf@ietf.org>; Thu, 14 Jun 2018 01:37:47 -0700 (PDT)
Received: from localhost (h-80-27.A165.priv.bahnhof.se [212.85.80.27]) by mail.tail-f.com (Postfix) with ESMTPSA id 1822D1AE01AA; Thu, 14 Jun 2018 10:37:47 +0200 (CEST)
Date: Thu, 14 Jun 2018 10:37:46 +0200
Message-Id: <20180614.103746.8291316293283106.mbj@tail-f.com>
To: evoit@cisco.com
Cc: netconf@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20180614.091828.21142123428745204.mbj@tail-f.com>
References: <BBA82579FD347748BEADC4C445EA0F21B55CCDB7@NKGEML515-MBX.china.huawei.com> <b256b91c7cbc4b3093c858e55c912f88@XCH-RTP-013.cisco.com> <20180614.091828.21142123428745204.mbj@tail-f.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/I9sxvE19DLTg80V5Kc8swpZkI0E>
Subject: Re: [Netconf] a joint discussion on dynamic subscription
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.26
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: Thu, 14 Jun 2018 08:37:50 -0000

Hi,

Another thing related to this.   You have:

   Receiver: A target to which a publisher pushes subscribed event
   records.  For dynamic subscriptions, the receiver and subscriber are
   the same entity.

But in the HTTP and UDP cases this last sentence is probably not true,
right?

Also, I have always struggled with the terms "publisher", "receiver",
"subscriber" vs. "client" and "server".

I think that a "subscriber" is always the "client".  If so, I think
this should be mentioned in 1.2 (and the term "client" imported from
RFC 8342).

Also, I think it would be useful to draw a picture that demonstrates
the roles:

      subscriber/client    receiver
          |                   ^
          | (1)               | (3)
          |                   |
          |                   |
          v        (2)        |
        server  ----------> publisher


(1) is creation of the subscriptionE; dynamic or configured
(2) is implementation specific
(3) is the delivery of notifications / event records

NOTE: the subscriber and receiver MAY be the same entity
NOTE: for some transports, if (1) is dynamic, (3) is sent over the
      same session as (1)
NOTE: for some transports, the sevrer and publisher are the same entity


If we can agree on an architectural picture like this, the different
transport docs can refer to this architecture and be defined related
to it.   For example, the netconf transport doc can state that the
publisher is always the same entity etc.



/martin




Martin Bjorklund <mbj@tail-f.com> wrote:
> Hi,
> 
> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > Hi Tianran,
> > 
> > > From: Tianran Zhou, June 12, 2018 11:47 PM
> > > 
> > > Hi Eric,
> > > 
> > > When we are discussing the draft-ietf-netconf-udp-pub-channel, we find
> > > a
> > > conflict with current dynamic subscription design.
> > > 1. The dynamic subscription requires notification to use the same
> > > channel as
> > > the subscription.
> > 
> > This is true when you look at the NETCONF transport draft.  However
> > this is *not* required by the base subscribed-notification draft.  And
> > in fact, the HTTP transport draft might not use the same logical
> > channel.  E.g., see how the URI is returned within:
> > https://github.com/netconf-wg/notif-restconf/blob/master/draft-ietf-netconf-restconf-notif-05.txt
> > 
> > So if you wanted to define some transport session independence for a
> > UDP transport, subscribed-notifications should permit that.  And if
> > you believe there is something in the text which prohibits this, let
> > me know.
> 
> Cool!  I think that this should be explcitly described in the
> subscribed-notifications document.
> 
> In the case of RESTCONF, decision to use a separate channel for the
> notifs is implicit in the transport of the request to
> establish-subscription.
> 
> In the case of UDP, I think the idea is that the
> establish-subscription is sent over any protocol that can do RPCs
> (NETCONF, RESTCONF, ...), but then some specific input parameter
> informs the server that the notifs are supposed to be sent over some
> other transport.
> 
> While reading the text about sessions, I found this:
> 
> In 2.4.3:
> 
>    The "modify-subscription" operation permits changing the terms of an
>    existing dynamic subscription established on that transport session
>    via "establish-subscription".
> 
> Which session does "that transport session" mean?  Perhaps simply:
> 
> NEW:
> 
>    The "modify-subscription" operation permits changing the terms of an
>    existing dynamic subscription.
> 
> 
> > > 2. The RPC does not have the input information about the receiver
> > > because the
> > > above assumption.
> > > 
> > > However, when we talk about the distributed data collection (multi
> > > data
> > > originators), the publication channel is always different from the
> > > subscription
> > > channel.
> > 
> > While it likely isn't what you want, even with NETCONF, the single
> > NETCONF session doesn't means that distributed line card generation of
> > the notification messages is impossible.  For example, the inclusion
> > of the header object message-generator-id (as defined within
> > draft-ietf-netconf-notification-messages) allows the notification
> > message generation to be distributed onto linecards even if the
> > messages themselves are still driven back to a central transport
> > session.  Note that I am not recommending this, but the specifications
> > would support this.
> > 
> > > So either the distributed data collection does not support dynamic
> > > subscription, or current dynamic subscription definition may need
> > > modification.
> > 
> > I think for UDP, you will want to define a way to bind the lifecycle
> > of the dynamic subscription's channels across multiple line cards.
> > This will require some thinking as well as coordination within the
> > publisher.
> 
> But this is an implementation detail.  However, it is true that the
> specification must work out the fate-sharing details between the
> session that sent the establish-subscription and the notif channel.
> Just as in the "restconf" draft.
> 
> 
> /martin
> 
> 
> 
> > Perhaps returning multiple URIs (one for each linecard) might be
> > something which could make this easier.  If you go down this path, you
> > still will need to fate-share the lifecycle of the subscription across
> > all of those line cards.
> > 
> > Eric
> >  
> > > What's your thoughts?
> > > 
> > > Regards,
> > > Tianran
> > 
> 
> _______________________________________________
> Netconf mailing list
> Netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf
>