Data Models and Structures

This topic is to discuss the following lesson:

1 Like

Hi There,

Recently, the organization that I’m working for is starting to implement something called Software Defined Networking, SD-Access. I was wondering if we have a topic for this technology in this website.

If you have please share it with me. I’m trying to read this topic and get familiar with it.

Thank you

Hello Mustafa

Under the Evolving Technologies section whose link you see below, there is Unit 2 which is called Network Programmability that deals with SDN. You can take a look at those lessons which should cover what you need.

SD-Access is something you will also find in the following lesson:

Look them over and if you have any more specific questions, just let us know!

I hope this has been helpful!

Laz

1 Like

Thank Mr. Lagapides !

This is a great section you showed me sir :+1:

1 Like

Curious in Yang Git Hub , under vendor list, i only see Cisco and Juniper. If other network vendor like Arista, Alcatel are not there; does that mean their device does NOT support YANG model ?
if not, how do people use Netconf/restconf/gRPC to do automation with them ? (as all these protocols rely on YANG model)

Hello Samson

Arista does support Yang models on Github, and you can find those at the following link:

For other vendors, you may not find repositories and you may have to create them yourself. To determine if a particular vendor supports some form of automation, I suggest you research or contact the specific vendor in question. They will then lead you to the most appropriate solution.

I hope this has been helpful!

Laz

Hii Laz/Rene,

Is a YANG model = YANG module? what is the difference?

Hello Roshan

This is a good question, and needs some clarification.

  • A data model is an abstract model, or method of representation, that organizes elements of data.
  • Data modeling is a process of creating a data model for an information system.
  • YANG is a data modeling language, that is, it is used to define data sent over network management protocols
  • A YANG module is a self contained piece of YANG code that performs a specific function, and is stored in a separate module file. A module can be seen as it is defined in the code that begins with the keyword module.

I hope this has been helpful!

Laz

Hello Roshan

These modules are created on systems that automate configuration procedures. The purpose of the data models and structures, is to configure centralized computer systems, often called controllers, to be able to send configuration changes to multiple devices on the network, to help in automating and streamlining configuration procedures.

The network devices must simply be configured to accept commands from automated systems. Different models may use different methods of communication, thus the IOS or IOS-XE devices must be configured accordingly. For more information about automation of configuration procedures and network orchestration, take a look at the following lessons:



I hope this has been helpful!

Laz

Hello Roshan

The whole point of data models and structures is to be able to modify and manage the configurations of tens, hundreds or even thousands of network devices efficiently and from a central location. The actual configuration programming must be done on a device other than the actual network devices, otherwise, implementing python code directly on them for the purpose of configuration, serves no purpose, since you still have to do it for each individual device.

The solution to this problem is to enable IOS devices to receive, understand, and execute commands from a centralized system that performs automated configuration procedures. In order for this to be done, some standardized method must be established, and this standard is called NETCONF (RFC 6241). NETCONF is an XML-based protocol that client applications use to request information from and make configuration changes to the device. YANG is used in conjunction with NETCONF, to model the configuration and state data used by NETCONF operations.

So by issueing the netconf-yang command, you are simply telling the device to receive, accept, and process commands and messages being sent to it using YANG over the NETCONF protocol.

Now if you have a large network, and you want to get into a controller based network management, then it’s a good idea to get a ready made system such as Cisco DNA, which uses a centralized controller and automates much of the programming part. However, if you want to implement these for smaller networks, with say five, 10, or 15 devices, and you want to program them using YANG, you can do this using Google’s Postman, which is a platform for API development. It’s free and you can use it to run the python code for configuring devices. You can find out more about Postman and how to set it up and configure it for such uses at the following lessons:


Both of the above lessons have details concerning how to set up Postman and use it.

I hope this has been helpful!

Laz

Dear Laz,
I hope i got many doubts cleared now,
thanks

1 Like

Hi Team,

Can you please explain the difference between state and configuration data for yang data model.?

Hello Kirshan

When it comes to network automation, for YANG or any other data model, you can think about configuration and state data like so:

  • Configuration data is the information sent to the device (from a controller) to modify its configuration and thus its behaviour. For example, setting the IP address of an interface.
  • State data is information that is sent from the device to the controller indicating its internal state. This is usually a response to a request for information. An example would be stating the IP address of an interface.

Configuration data changes the behaviour of the device while state data simply reports the current status.

I hope this has been helpful!

Laz

Where do we execute the below.

pyang -f tree Cisco-IOS-XE-arp.yang

Hello Kannan

The pyang command is issued on a Linux device in the command line. In the lesson, the “$” prompt is missing, which would indicate this. I will let Rene know to add that in.

In the meantime, you can see this command in action in more detail in the following lesson:

I hope this has been helpful!

Laz