Subject: [Netconf] network-wide NETCONF

From: Andy Bierman <[email-masked]>
Date: Wed, 14 Jul 2010 12:42:25 -0700

Hi,

I suspect this has already occurred to some people,
but why not use XPath to solve network-wide config
problems?

Each server has a set of XPath variables
and the client config is allowed to have XPath expressions
instead of plain values:

  server-a var: maxmtu = 1500
  server-b var: maxmtu = 9000

  <config>
     <interfaces>
       <interface>
          <name>eth0</name>
          <mtu nc:operation="merge" nc:source="xpath">$maxmtu</mtu>
       </interface>
    </interfaces>
  </config>

The application fills in the XPath expression value
before sending this config to a server.
Another option is to load the variable set into the server and
make the server evaluate the XPath expressions (e.g., leave $maxmtu
in the edit-config PDU).

This is a trivial example.  XPath allows for some
really complex stuff, especially if we add custom functions.

I am interested in a Bar Bof on network-wide config.
I think NETCONF should at least experiment with solutions.
Some people like Randy Bush thought this is what NETCONF
was going to solve.  They think the NET in NETCONF stands
for 'Network', as advertised.  (Maybe it should be called DEVCONF ;-)

Andy

---

From: "Romascanu, Dan (Dan)" <[email-masked]>
Date: Thu, 15 Jul 2010 12:08:18 +0200

As a contributor - I am interested. 

If I need to do more, like find a room (or a bar) let me know. 

Dan

> -----Original Message-----
> From: [email-masked] 
> [mailto:[email-masked]] On Behalf Of Andy Bierman
> Sent: Wednesday, July 14, 2010 10:42 PM
> To: NETCONF
> Subject: [Netconf] network-wide NETCONF
> 
> Hi,
> 
> I suspect this has already occurred to some people, but why 
> not use XPath to solve network-wide config problems?
> 
> Each server has a set of XPath variables and the client 
> config is allowed to have XPath expressions instead of plain values:
> 
> 
> The application fills in the XPath expression value before 
> sending this config to a server.
> Another option is to load the variable set into the server 
> and make the server evaluate the XPath expressions (e.g., 
> leave $maxmtu in the edit-config PDU).
> 
> This is a trivial example.  XPath allows for some really 
> complex stuff, especially if we add custom functions.
> 
> Some people like Randy Bush thought this is what NETCONF was 
> going to solve.  They think the NET in NETCONF stands for 
> 'Network', as advertised.  (Maybe it should be called DEVCONF ;-)
> 
> 
> Andy
> 
> _______________________________________________
> Netconf mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/netconf
>

---

From: Andy Bierman <[email-masked]>
Date: Thu, 15 Jul 2010 06:25:56 -0700

> If I need to do more, like find a room (or a bar) let me know. 

OK -- not sure if there is enough interest yet.
There isn't any draft to discuss.  The first step
is to even decide if this is purely an internal
application problem or if the problem space extends
beyond the application.

If there is a need for any standard functionality between
the application and the servers?  What would that solution look like,
and does it impact the device-level protocol (NETCONF)?

Andy

---

From: Andy Bierman <[email-masked]>
Date: Thu, 15 Jul 2010 07:20:48 -0700

> If I need to do more, like find a room (or a bar) let me know. 

I should clarify what I mean by network-wide config.

I suppose this could mean making network-wide changes,
like the canonical example of changing the duplex mode
on 2 separate devices that are connected via a switch.
Another is changing the NTP server and making sure the
address is updated on all NTP clients.

That is not really what I mean here.
Instead, I am wondering if there is a way
to express configuration differently than raw XML
in order to make it easier to apply to any supported device.

One obvious solution is to use formulas instead of raw values,
but this probably requires that the client is aware of all the
differences across all the servers.

Another obvious solution is to somehow borrow the 'auto-increment'
concept from SQL.  Many times in provisioning, the client does not
care about the particular value of an INDEX component.
The generic formula "make-any-new-instance" would be
very helpful, but NETCONF and YANG do not support this at all.

Andy

---

From: "Ersue, Mehmet (NSN - DE/Munich)" <[email-masked]>
Date: Thu, 15 Jul 2010 17:42:31 +0200

Hi Andy, 

I'm interested as a contributor.

But I need to understand the problem space a bit better.
It would be interesting if we can list some issues for "network
configuration" before we meet.

Some clarifications and issue gathering:

- Network Configuration associates, at least for me, with a (more or
less generic) network model to be used for the configuration of the
network. 
Do we need such a model?
- How about network-wide transactions to support network configuration?
- Does the configuration of the network covers also self-configuration
as a functionality? I think following the trend in the industry it would
be interesting to enable the server for the initiation of the
configuration. How about to specify "call-home" for this?
- What about initial network (but also initial device) configuration as
part of network bootstrapping?

just some toughts . . . 

Mehmet

> From: [email-masked] [mailto:[email-masked]] On
> Behalf Of ext Andy Bierman
> Sent: Thursday, July 15, 2010 3:26 PM
> To: Romascanu, Dan (Dan)
> Cc: NETCONF
> Subject: Re: [Netconf] network-wide NETCONF
>

---

From: Andy Bierman <[email-masked]>
Date: Thu, 15 Jul 2010 09:43:48 -0700

> less generic) network model to be used for the configuration of the

OK -- this is one path -- giant UML models describing the whole network
including associations.  This relies on experts to create the models
and tools to magically generate code from the models.  Neither of
these are inexpensive.

> Do we need such a model?

In the standards?
Not sure.  One experiment of interest is the conversion from UML to YANG,
and at the same time, conversion from the network model to a set of
server-control-blocks, which are tweaks to the YANG (features, deviations,
XPath variables, etc.) at the device level.

> - How about network-wide transactions to support network configuration?

I always ask the same questions each of the 50 times this
has come up before:

  Who is listening for this 'network-wide' transaction?
  Is this anything more than the client using N NETCONF
  sessions, sending commands to each one?  Is this a broadcast
  address?  A sub/pub model?  Unless you introduce a mid-level-manager
  into the network (and asking a server to manager other servers is
  doing exactly that), then how does a simple NETCONF device
  participate in a network-wide transaction?

> - Does the configuration of the network covers also self-configuration

yes -- this could be called dynamic defaults for non-keys,
and auto-instance-naming for key leafs.

> configuration. How about to specify "call-home" for this?

Callhome is a whole can of worms that the IETF already passed on.
Way out of scope here.

> part of network bootstrapping?

Initial config and passing CLI parameters to the server seems to
be some sort of sacred, unmanageable part of the problem space.
The NACM config is a perfect example.  There is no way to ship
any NACM implementation so it can be configured in-line, using
NETCONF.  It requires some out-of-band setup to alter the
conservative defaults.  IMO, this is not very good, but
seems to be industry practice.

BTW, I meant we should have a real Bar BOF, with beer,
not a conference room with slides.

Andy

---

From: Martin Bjorklund <[email-masked]>
Date: Thu, 15 Jul 2010 22:37:08 +0200 (CEST)

Hi,

> > I'm interested as a contributor.

Me too.  We started to discuss this very informally in Anaheim, and it
seems some people are interested in this topic.

> and tools to magically generate code from the models.  Neither of

I think that this network model should be a YANG model, probably
specified by the same people that do the device specific YANG model.
Ideally, a WG would define a device specific model (YANG) for its
protocol, a network model (YANG), and mapping rules (text) from the
network model to the device specific model.

> In the standards?

Yes!

But I believe that maybe this is not what Andy had in mind with his
original email?

> Not sure.  One experiment of interest is the conversion from UML to YANG,

A co-worker of mine has developed a YANG->UML converter as a pyang
plugin.  I expect this to be available in pyang "soon".  This tool can
be very useful to get a graphical overview of complicated models.
Other people in my company are also working on UML->YANG tools, but I
do not know the current status of that.

> > - How about network-wide transactions to support network configuration?

NETCONF supports one type of network-wide transaction, but it
requires the devices to support the confirmed commit capability.  Open
one session to each device, push out the changes, do a confirmed
commit in parallell, and if any device fails, revert all sessions,
otherwise commit all in parallell.

/martin

---

From: "Ersue, Mehmet (NSN - DE/Munich)" <[email-masked]>
Date: Fri, 16 Jul 2010 16:35:15 +0200

Hi,

> From: ext Martin Bjorklund [mailto:[email-masked]]
> Hi,
> 

I agree, that this should be a YANG model. But I don't know how to get
there?

The point is which model are we going to use as THE network model.
Should we use something already available or do we develop it by
ourselves?
It would be actually sub-optimal if it is yet another model in the
industry.

If we get it somewhere else we need to decide which one, since 
getting something comprehensive and translating it into YANG is probably
not the best solution.

May be it is better to develop our version which we can define as the
'IETF standard model'.
I at least would assume we have our own opinion what it should include
and how it should look like.

In any case, I see a huge value in it if the network model in YANG would
be aligned with or is easily mapable to other models the industry is
using currently. 
Just in case we want to minimize the translation/mediation blues ;)

> Yes!

Agree.
 
> do not know the current status of that.

I think this can be done with a manageable effort.

> otherwise commit all in parallell.

BTW: The network topology could be a bit more complicated than "1:many"
only.

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Fri, 16 Jul 2010 18:04:15 +0200

> be aligned with or is easily mapable to other models the industry is

So let me ask the obvious two questions:

- Given the N industry network models out there, what is fundamentally
  wrong with them that the industry is in need of another network
  model?

- What is the plan to get the industry network model N+1 deployed
  (when it is finally done in some m years)? I have been told that
  most bigger operators have their own databases to drive the
  configuration of their hardware - so who is the customer waiting for
  these models to deploy them in m years?

Perhaps I am around too long... The illusion^Hidea of a common network
model has a long history in the network management world and hence I
believe it is crucial to have good convincing answers to the above two
questions. (And I do not accept "we now do it all over in YANG" as a
convincing answer - thats too simple.)

/js (who loves to play devils advocate once in a while)

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1, 28759 Bremen, Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>

---

From: Andy Bierman <[email-masked]>
Date: Fri, 16 Jul 2010 11:30:19 -0700

> convincing answer - thats too simple.)

What is a 'network model' exactly?
Is it an info model that is little more than
a generic version of a data model?

If it is a giant model of all the services, then how do individual
devices implement their piece of the network model?  What is
the role of standards for this aspect of the problem?

> /js (who loves to play devils advocate once in a while)

I agree with you (3 times in a year!).
I am skeptical of this approach.
There is one revolutionary aspect to this approach though --
the idea that the application developers using the models will
actually create UML models that drive application code generation,
but also generate the YANG data models that will in turn drive server code
generation.  This could allow vendors to create
a coordinated device model instead of the ad-hoc kitchen-sink
server-developer-driven approach we have today.

Andy

---

From: "Bert (IETF) Wijnen" <[email-masked]>
Date: Sat, 17 Jul 2010 12:20:20 +0200

> /js (who loves to play devils advocate once in a while)
I have also been sceptical about this for many years.
But at the same time, I keep encouraging (specifically young) engineers
to try and develop such a model. Who know, that once, one (or a few of
them together) succeed. That would be splendid.

Of course, it is ALWAYS good to try and answer the questions you asked!

Bert

---

From: "Romascanu, Dan (Dan)" <[email-masked]>
Date: Sun, 18 Jul 2010 18:50:20 +0200

what Bert said. 

Dan

> [mailto:[email-masked]] On Behalf Of Bert (IETF) Wijnen
> Sent: Saturday, July 17, 2010 1:20 PM
> To: Ersue, Mehmet (NSN - DE/Munich); Juergen Schoenwaelder
> Cc: NETCONF
> >> getting something comprehensive and translating it into YANG is 
> >> probably not the best solution.
> >>
> >> I at least would assume we have our own opinion what it should 
> >> include and how it should look like.
> >>
> >> In any case, I see a huge value in it if the network model in YANG 
> >> would be aligned with or is easily mapable to other models the 
> >> industry is using currently.
> >>     
> >
> But at the same time, I keep encouraging (specifically young) 
> engineers to try and develop such a model. Who know, that 
> once, one (or a few of them together) succeed. That would be splendid.
>

---

From: Andy Bierman <[email-masked]>
Date: Sun, 18 Jul 2010 10:25:04 -0700

>> once, one (or a few of them together) succeed. That would be splendid.

But are you sending them on a fool's errand?
IMO, it is really clueless to develop an uber-model
if it has to know about the real-world variations
at the device implementation level.

So the uber-modelers punt this problem to the EMS team.
Supposedly, this team of engineers will provide a
perfect northbound API to the uber-modelers, and deal
with all the device details as well.

This just moves the problem, it doesn't solve it.
Unless the mapping from network to device model
is algorithmic and complete, there is no real labor
savings here, and therefore it won't work any better
than current approaches.

Andy

---

From: "Cole, Robert G Dr CIV USA" <[email-masked]>
Date: Mon, 19 Jul 2010 14:29:51 -0400

Classification: UNCLASSIFIED
Caveats: NONE

Andy,

Please let me know if you set up a Bar Bof on this.  I am interested
from the perspective of measurement of network service as opposed to
device performance.  It would be nice if this work/approach would
address this issue as well?

Thanks,
Bob

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On
Behalf Of Andy Bierman
Sent: Wednesday, July 14, 2010 3:42 PM
To: NETCONF
Subject: [Netconf] network-wide NETCONF

Hi,

  <config>
     <interfaces>
       <interface>
          <name>eth0</name>

Andy

_______________________________________________
Netconf mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/netconf
Classification: UNCLASSIFIED
Caveats: NONE

---

From: Andy Bierman <[email-masked]>
Date: Mon, 19 Jul 2010 11:41:52 -0700

> address this issue as well?

OK -- the IETF has procedures for this sort
of thing now, but unofficially, I think the
1740 - 1940 slot on Monday is free of OPS meetings
(except OPSEC WG).

IMO, we are not even ready for slides or I-Ds.
Perhaps a draft and a BoF at the next IETF
should be the maximum goal at this phase.

Andy

---

From: "Randy Presuhn" <[email-masked]>
Date: Mon, 19 Jul 2010 13:46:51 -0700

Hi -

> From: "Bert (IETF) Wijnen" <[email-masked]>
> To: "Ersue, Mehmet (NSN - DE/Munich)" <[email-masked]>; "Juergen Schoenwaelder" <[email-masked]>
> Cc: "NETCONF" <[email-masked]>
> Sent: Saturday, July 17, 2010 3:20 AM
...
> them together) succeed. That would be splendid.

To frame the question in terms of developing a "common network
model", particularly if that is understood as the union of all of (a) networks
components' configurations, is an effective way to prevent progress.

IMO what is much more useful is to look at what is operationally meant by
a network's configuration - the set of configured *relationships* between
communicating entities.  E.g. - what cable is plugged in where,
what protocol parameters have to match or otherwise be systematically
related (DTE/DCE) peering relationships, and so on, and to be able to
represent, store, and version this information.   Some of this information
might be used to compute / validate portions of netconf device configurations.
Some of it (like cable connections) is something few devices are able to
change without human assistance, but even that information is of very
high practical value.

Productive work does NOT require developing some all-encompassing
network "model".  It requires looking at the high-impact relationships where
it's worthwhile to invest in automation to ensure that the entities in the
relationship reach their desired configurations, or at least permit a tech
to check that stuff is set up as it should be.

Randy

---

From: Phil Shafer <[email-masked]>
Date: Mon, 19 Jul 2010 16:58:20 -0400

>to check that stuff is set up as it should be.

Amen.  We don't need to boil the ocean to do something useful, but
it does need to be network-oriented, with content that describes
how the network is supposed to work.

Thanks,
 Phil

---

From: Martin Bjorklund <[email-masked]>
Date: Wed, 21 Jul 2010 11:21:02 +0200 (CEST)

Hi,

> > The point is which model are we going to use as THE network model.

I agree with other speakers that we should not try to do the one and
only uber-network model.  Instead, I think we (i.e. IETF) should do
concrete YANG models for our own areas.  We have used OSPF as one
example in the past - ideally there would be one YANG model for how to
configure OSPF in devices, and one YANG model for how to configure
OSPF in a network of devices.  Realistically, the mapping between
these models is defined in text.  This would be a huge step forward
compared to abstract UML models mapped to different CLI flavours.

>   wrong with them that the industry is in need of another network

I assume N is > 1, and I guess that SID is one of these models.  Which
are the other models?

As for SID, I think it is on a more abstract level than what I have in
mind.

In the OPS area open meeting, Nigel Davis will talk about TM Forum
data models, and I know that he and Mehmet (and others) have talked
about harmonizing TM forum models with IETF models.

> model

I think that SID tries to be such a model, and that is definitely NOT
what I think we should do.

/martin

---

From: Ladislav Lhotka <[email-masked]>
Date: Wed, 21 Jul 2010 11:28:38 +0200

> how the network is supposed to work.

+1

Also, YANG need not necessarily be appropriate for this kind of
description - things like bidirectional and multi-party links as well as
parametric templates will be needed for such a description.

But I am personally interested in this kind of work.

Lada

-- 
Ladislav Lhotka, CESNET
PGP Key ID: E74E8C0C

---

From: Andy Bierman <[email-masked]>
Date: Wed, 21 Jul 2010 03:02:35 -0700

>> how the network is supposed to work.

This looks great on the bumper-sticker but what does it
even mean?  YANG is written specifically to work with
NETCONF, which is intended to be implemented within
a single server.

So perhaps start with the 'network' YANG model for a duplex link?
How does YANG model 2 ends of a link, each within a different
NETCONF server?  How does network-wide YANG differ from device YANG?

Andy

---

From: "Bert (IETF) Wijnen" <[email-masked]>
Date: Wed, 21 Jul 2010 12:28:38 +0200

> what I think we should do.
I have in the past referred to the SID as "a spaghetti bowl of spaghetti 
bowls"
So please let us indeed not go there.

Bert

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Wed, 21 Jul 2010 15:23:27 +0200

> compared to abstract UML models mapped to different CLI flavours.

I understand a YANG model for devices running OSPF. I see value in a
description how the OSPF device model can be used to achieve robust
network-wide configuration. It still escapes me what a network wide
YANG model for OSPF would be.

Lets face it, the IETF is crowded by device geeks, not by people who
have insights how real-world configuration databases look like and
those who have insights might not be willing to share those insights
for obvious business reasons.

/js

---

From: "Ersue, Mehmet (NSN - DE/Munich)" <[email-masked]>
Date: Wed, 21 Jul 2010 16:51:19 +0200

Hi,

we for sure shouldn't develop something like SID at IETF.

My original proposal was to develop a YANG model for the network we want
to configure 
since I think the network cannot be configured without an appropriate
model.

This does not necessarily to be a huge model trying to cover all types
of networks and everything at once. 
I think it would be worth to develop a YANG module covering the
necessary configuration parameters of an IP network.

Cheers,
Mehmet

> Behalf Of ext Bert (IETF) Wijnen
> Sent: Wednesday, July 21, 2010 12:29 PM
> To: Martin Bjorklund
> Cc: [email-masked]

---

From: "Ersue, Mehmet (NSN - DE/Munich)" <[email-masked]>
Date: Wed, 21 Jul 2010 16:55:43 +0200

> network model to the device specific model.

It would be interesting if the network model in YANG could be aligned 
with other network models used in the industry. IOW it would be
beneficial
if other SDOs use IETF YANG modules as they are instead of incorporating
the content or mapping it to their model possibly incorrectly.

>   wrong with them that the industry is in need of another network

I agree that there are already network models available in the 
industry. The point is the SDOs are living in islands somehow. 

Many companies in the industry use an information model (be it SID 
or not) for the management of their networks and the operators are 
interested to derive their data models (YANG modules) for device 
management from this information model to reduce the cost for the 
maintenance of manyfold models they develop over the time.

Another approach would be if we enable YANG to use or to derive 
from existing network models for module development.

Mehmet

---

From: Andy Bierman <[email-masked]>
Date: Wed, 21 Jul 2010 08:49:40 -0700

> for obvious business reasons.

The IETF has to produce solutions that a consensus of vendors
agree to publish.  A network-wide solution that only works
if vendor X clients talk to vendor X servers is not that useful
to an operator that wants to the ability to utilize equipment from
more than 1 vendor.

This is always a trade-off that vendors and operators need to manage.
Deployment of consistently implemented device models seems like
an extremely useful step towards network-wide standard models.
Since we have not achieved that goal at all, moving up to the
network-level is probably premature at this point.

I am still curious about how each device knows what it is supposed to
implement out of the network model.  Doing this step ad-hoc
by hand is what we have now.  IMO a network model
is not very interesting if the translation to device models
is out of scope.  How does an application that only knows
about the network model send NETCONF operation requests
to individual servers?  I admit to being a device geek,
because I can't figure out how the application magically
makes this transformation without requiring traditional
data silos and brute-force device-specific knowledge.

Andy