Index

Symbols

^ (caret symbol), 445

$ (dollar sign), 445

// search operator (XPath), 437

!= operator, 455

Numbers

3GPP (3rd Generation Partnership Project), 267

A

AAA (Authorization, Authentication and Accounting), RADIUS, 46

ABORT phase (network-wide transactions), 421

aborted transactions (NETCONF configurations), reasons for, 409

accounting, FCAPS model, 3

ACID tests, 79

actions, 113116

input/output parameters, 113

NETCONF, 184185

RESTCONF, 210211

allocate_vlan() method, service logic, 396

Amazon EC2 (Elastic Compute Cloud), 17

ancestor:: axes (XPath), 437

anchor symbols, 445

Andreessen, Mark, 23

Ansible, 317319

ANX (Advanced NETCONF Explorer), 328329

anydata type, model design, 442443

anyxml type, model design, 442

APIs (Application Programming Interfaces), 85

applying to complex environments, 19

benefits of, 1819

CLI as an API, 2426, 5758

contract languages, YANG as, 61

data model-driven management, 70

NSO, 394395

REST APIs and YANG Catalog, 355356

YANG as native (primary) language, 373

pyangbind, 373

YDK, 373378

YANG Catalog

API calls, 355358

REST APIs, 355356

search API, 357358

application development

metadata

integrating from Yang Catalog, 355358

keyword searches, 357358

retrieving from Yang Catalog, 355358

NETCONF

libnetconf2, 371372

ncclient, 366371

parsers

libyang, 365366

pyang tool, 359361

pyang tool

embedding, 359361

plug-ins, 361364

RESTCONF servers, 372

YANG as native (primary) language, 373

pyangbind, 373

YDK, 373378

YANG Catalog

API calls, 355358

integrating metadata, 355358

keyword metadata searches, 357358

REST APIs, 355356

retrieving metadata, 355358

search API, 357358

architectures (telemetry), 236238

assurance, services, 5

asynchronous notifications, NETCONF, 82

AudioZone YANG module, 142146

augment statements, 142146, 442

automation, 61

CLI and automation (networking trends), 79

DevOPS, networking trends, 1113

hardware commoditization and disaggregation (networking trends), 79

reduced deployment times (networking trends), 67

services, 4

axes (XPath), 437

B

backward compatibility, modules, 434, 437, 457

native modules, 460

pyang tool, 459460

rules versus relevancy, 457459

bad string patterns, 445446

base (identities), 107

BBF (Broadband Forum), 265

BGP-LS (BGP Link State) distribution, 15

Bierman, Andy, YANG model design, 460462

bits type, model design, grouping features, 437

Bjorklund, Martin, 154156

blank configurations

invalid blank configurations, 447

model design, 435436

BookZone example. See also Store Connect service example

AudioZone YANG module, 142146

bookzone-example module, 144145

categorizing data, 106112

configuration/operational data, separating, 117122

containers, 98

identifiers, case-sensitivity, 104

isbn mandatory value, 98, 99

languages, 103104

leafs

leafrefs, 103

mandatory values, 98

true values, 98

lists, 98, 101102, 103

schemas, representing data in, 9798

strings, 103105

tables, representing data in, 97

title mandatory value, 98, 99

tree representations, 102103

type definitions, 104105

YANG modules, first example of, 99100

boolean types, model design, 440

bottleneck modules, 349

bottom-up device templates, service development, 392394

business telemetry, 231232

C

:candidate datastores, 152

capabilities, NETCONF, 8182, 153

CapabilityRequest operations (gNMI), 215216

CapEx (Capital Expenditures), 1617

caret symbol (^), 445

case nodes, 115, 130

case-sensitivity (identifiers), 104

categorizing data, BookZone example, 106112

CBOR (Concise Binary Object Representation), 76

chaining services, 45

choice constraints, 449

choice nodes, 115, 130

Claise, Benoit

CLI and automation, 6

network management, 5960

Python, 12

SNMP, 32

Clemm, Alex, 249252

CLI (Command-Line Interface), 2425

as API, 2426, 5758

automation and CLI (networking trends), 79

data-model driven management, CLI scripts, 1920

Expect scripts, 89

limitations of, 25

network management, 89

NSO interaction, 405407

show commands, 8

VRF, examples of, 25

clients, NETCONF, 159, 160, 161162

cloning repositories (modules), 283

close-session messages, NETCONF, 189

clouds

elastic clouds

Amazon EC2, 17

networking trends, 1618

managing

service management, 18

system-level management, 1718

collections, RESTCONF, 202

collectors (telemetry), 237

CoMI (CoAP Management Interface), 84

commit messages, NETCONF, 189

COMMIT phase (network-wide transactions), 421, 422

commit-dry-run, service management, 407409

commits, service management, 407409

commoditization (hardware), 911

common mistakes/problems, 443

constraints

applying, 447448

expression performance, 456457

mixing up constraints, 454456

simple constraints, 448449

invalid blank configurations, 447

missing ranges, 444

multikey leafrefs, 451454

strings

bad string patterns, 445446

overusing strings, 444

unclear optional leafs, 443

XPath navigation, 449451

compact mode (Protobufs), 242243

compiling modules, 339340

conditional content, 127128

conditional telemetry, 236

ConfD, testing modules, 340347

config_e_routers() method, service logic, 396

config_i_routers() method, service logic, 397398

config_monitoring() method, service logic, 398

configuration datastores, NETCONF, 80

configurations

blank configurations, model design, 435436

configuration/operational data, separating, 117122

FCAPS model, 3

NETCONF configurations

aborted transactions, reasons for, 409

crypto key pairs, 398400

hello messages, 400404

listing device capabilities, 400403

OOB changes, 404405, 409

replying to hello messages, 403404

verifying operation, 400

preconfiguration, 149

publisher configurations and NSO, 406407

RESTCONF configurations, creating/updating, 201202

DELETE operations, 206

PATCH operations, 205206

POST operations, 202203, 210211

PUT operations, 203204

YANG-PATCH operations, 207210

SNMP, monitoring versus configuration, 5758

transient configurations, model design, 442

configured subscriptions (telemetry), 246

CONFIRM phase (network-wide transactions), 422424

constraints, 122, 123, 125

choice constraints, 449

common mistakes/problems

applying, 447448

mixing up constraints, 454456

simple constraints, 448449

deref function (), 124

mandatory true constraints, 122123

max-element constraints, 449

min-elements constraints, 449

must statements, 123124, 126127

unique constraints, 449

unique statements, 125126

containers, 98, 127128, 447

controllers, management architecture, 6970

coordination (industry), YANG development, 270274

copy-config messages, NETCONF, 189

create() method, service logic, 395

CRUDX operations, 82

crypto key pairs, NETCONF configurations, 398400

cURL (client URL), 319321

curl command, RESTCONF, 194, 207208, 213

current() function, 126127, 454

customer experience, services, 4

D

dark deviations, 441

data model-driven management, 59

advantages of, 19

APIs, 70

applying to complex environments, 19

benefits of, 1819

CLI scripts, 1920

components of, 7074

datastores (server architectures), 7778, 80

gNMI, protocol comparison table, 78

NETCONF, protocol comparison table, 78

networking trends, 1820

NMS, 7071

orchestrators, 71

RESTCONF, 6364, 78

Schonwalder, Jurgen, 9192

data model-driven telemetry, 86, 231, 325

ANX, 328329

architectures, 236238

collectors, 237

conditional telemetry, 236

defined, 21, 230, 231

dial-in/dial-out modes, 241243

encodings (protocol binding/serialization), 238

events

monitoring versus, 239

NETCONF event notifications, 243244

YANG event notifications, 245247

exporting data models, 2122

feedback loops, 236

hardware-based telemetry versus, 2122

mapping data models, 22

mechanisms, 242243

monitoring events versus, 239

need for, 2122

networking trends, 2022

OpenConfig telemetry

OpenConfig streaming telemetry, 248249

YANG Push and Friends versus, 247248

Pipeline, 326327

publishers, 237

reasons for using, 2122

routers

destination groups, 241

sensor groups, 241

subscriptions, 241

sensor paths, 238

SNMP

data model-driven telemetry versus, 2122

transitioning to telemetry, 232235

streaming telemetry, 238 248249

subscriptions

configured subscriptions, 246

creating, 241

dynamic subscriptions, 246247

IETF YANG subscriptions, 244245

on-change subscriptions, 239241

periodic subscriptions, 239241

requests, 238

transport protocols, 238, 239

use cases, 235236

YANG Push and Friends, 244245, 247248

data models, 48

information models versus, 3941, 64

managing networks with different data models, 4148

properties of, 6667

UML, 40

data nodes, 130

data tree paths, 450

datastores (server architectures), 7778

:candidate datastores, 152

:intended datastores, 153154

NETCONF, 80

NMDA, 152154

:operational datastores, 153154

pub/sub services, 244

:running datastores, 152

:startup datastores, 152

default and mandatory data, 126127

default origins (NMDA), 190

default statements, 122123, 441, 443

DELETE operations, creating/updating RESTCONF configurations, 206

delete-config messages, NETCONF, 189

delivering services, 4

dependencies, YANG modules, 260262

deployments, reduced deployment times (networking trends), 67

deref() function, 124, 453454, 455

dereferences, 129

derived-from() function, 128

designing modules, 336

compiling modules, 339340

learning from others, 337339

sharing metadata, 347349

testing modules

ConfD, 340347

yanglit tool, 347

validation, 339340

YANG Catalog and, 337339

destination groups (routers/telemetry), 241

deviation statements, 148149

dark deviations, 441

light deviations, 441

model design, 441

device synchronization, 413417

DevOPS

defined, 1213

networking trends, 1113

dial-in/dial-out modes (telemetry), 241243

directories (modules), 283

disaggregation of software from hardware, 911

disconnected multikey leafrefs, 451454

DMTF (Distributed Management Task Force), 266

documentation, OpenDaylight MD-SAL, 264

dollar sign ($), 445

double slash (//) search operator, 437

downloading pyang tool, 284

DSL (Domain-Specific Languages), 66

dynamic subscriptions (telemetry), 246247

E

EANTC (European Advanced Networking Test Center), interoperability testing, 273

edit-config messages, NETCONF, 176181

edit-data operations, NMDA, 189, 190

elastic clouds

Amazon EC2, 17

networking trends, 1618

embedding pyang tool, 359361

empty leafs, 116

empty types, model design, 440

encodings (protocol binding/serialization), 74

CBOR, 76

JSON, 7576

Protobufs, 76

telemetry and, 238

XML, 75

enumeration, model design, 437438

error-message statements, 127

ETSI (European Telecommunication Standards Institute), YANG development, 267

events

actions, 113116

NETCONF, 243

event notifications, 243

stream notifications, 244

subscription notifications, 243, 244

notifications, 113, 116117

RPCs, 113116

telemetry monitoring versus events, 239

YANG event notifications, subscribing to, 245247

Expect scripts, CLI (Command-Line Interface), 89

expenditures

CapEx, 1617

OpEx, 1617, 24

expressions (XPath)

performance, 456457

quadratic complexity, 456

extension keywords, 146148

extractable/non-extractable metadata, 289

F

FCAPS model, 3

accounting, 3

automation, 4

benefits of, 3

configurations, 3

faults, 3

performance, 3

security, 3, 4

FCAPS+E (Energy Management), 4

FD.io, 267

feature statements, 441

feedback loops

network management, 8990

telemetry as, 236

finding modules, 283

grep command, 288

by metadata, 288290

YANG Catalog, 287, 288290

flow records, NetFlow and IPFIX

basic model, 3435

development of, 3334

example of flow records, 3536

Forces (FORwarding and Control Element Separation), 15

framing messages, NETCONF, 169171

G

get messages, NETCONF, 181184

get_interface() method, service logic, 397

GetBulk operations, SNMP (Simple Network Management Protocol), 232, 233

get-config messages, NETCONF, 174176

get-data operations, NMDA (Network Management Datastore Architecture), 189190

GetNext operation, SNMP (Simple Network Management Protocol), 232, 233

GetRequest operations (gNMI), 216219

get-schema messages, NETCONF, 189

gNMI (gRPC Network Management Interface), 19, 8384, 214, 225, 270

CapabilityRequest operations, 215216

GetRequest operations, 216219

gRPC, 214215

Protobufs, 76

protocol comparison table, 78

SetRequest operations, 219224

SubscribeRequest operations, telemetry, 224225

Google Protobufs. See Protobufs

Goyang, 85

grep command (UNIX), 288

grouping

data, 119

nodes, 130

reusing groupings, 440441

gRPC, 214215

H

hardware

commoditization, 911

data-model driven telemetry versus, 2122

disaggregation, 911

HATEOAS (Hypermedia As The Engine Of Application State), 191, 195

hello messages

NETCONF, 161, 171174

conformance type, 403404

listing device capabilities, 400403

module-set-id attributes, 403

replying to hello messages, 403404

NSO, device synchronization, 413417

HTTPie, 302303

I

identifiers

case-sensitivity, 104

choosing, 435

identity, 107, 108

base, 107

identityref, 108109

kind-of relations, 438

model design, 438

object-oriented identities, 438

IEEE (Institute of Electrical and Electronics Engineers), 266

IESG (Internet Engineering Steering Group), MIB modules (writable), 33

IETF (Internet Engineering Steering Group), 430

key data model-driven RFCs, 256257

YANG development

dependencies, 260262

ietf-routing YANG module, 260

key data model-driven RFCs, 256257

models, 260

module and submodule RFCs, 257259

modules and submodules extracted from IETF drafts, 259260

YANG Push and Friends, 246, 247248

YANG subscriptions and telemetry, 244245

ietf-interfaces.yang module, 150151, 152

ietf-routing YANG module, 260

ietf-routing@2018–03–13.yang module, 283284

if-feature statements, model design, 437438

ifIndex, defined, 41

impact analysis, 349

implement conformance type, NETCONF hello messages, 403404

import conformance type, NETCONF hello messages, 403404

import statements, 143144

industry coordination, YANG development, 270272

inequality operator (!=), 455

information models, 48

data models versus, 3941, 64

UML information models, turning into data models, 64

input nodes, 130, 132133

input/output parameters, actions, 113

installing

Netconf-console, 302303

pyang tool, 284

YANG Suite tool (YANG Catalog), 299

instance data, 63, 97

:intended datastores, 153154

intended origins (NMDA), 190

intent-based networking, networking trends, 2223

interoperability testing, YANG development, 272274

invalid blank configurations, 447

IP SLA, performance monitoring/reporting, 8

IPFIX (IP Flow Information Export)

basic model, 3435

development of, 3334

flow records, 3536

limitations of, 3637

NetFlow and, 4546

isbn mandatory value (BookZone example), 98, 99

ITU-T (ITU Telecommunication) Standardization Sector, YANG development, 267

J

jq command, 302322

JSON (JavaScript Object Notation), 7576

RESTCONF and, 7576

services, delivery, 4

K

key data model-driven RFCs, IETF and YANG development, 256257

key statements, mulitple keys in, 119

key title statements, 98

keyless lists, 119, 440

keys

crypto key pairs, NETCONF configurations, 398400

keys, 439

model design, choosing keys, 439440

natural keys, 439

UUID, 439

keyword metadata searches in YANG Catalog, 357358

kill-session messages, NETCONF, 189

kind-of relations (identities), 438

Krejci, Radek, 380381

Kuarsing, Victor, 4850

L

language native (primary), YANG as

pyangbind, 373

YDK, 373378

languages

BookZone example, 103104

YANG, 103104

Larsson, Kristian, 425428

leaf-list, 145

leafref, 103, 128130

model design, 436437

multikey leafrefs, 451454

require instance false statements, 436437

schema nodes, 130142

leafs

default statements, 122123

empty leafs, 116

leafrefs, 103, 128130

multikey leafrefs, 451454

schema nodes, 130142

mandatory leafs, 447

mandatory values, 98

optional leafs, 443

true values, 98

type statements, 98

unclear optional leafs, 443

learned origins (NMDA), 190

libnetconf2, 371372

libyang, parsers, 365366

light deviations, 441

lists, 98

BookZone example, 101102

key statements, mulitple keys in, 119

keyless lists, 119, 440

leaf-list, 145

leafref, 103

max keyword, 101102

NETCONF device capabilities, 400403

ordered-by users lists, 439

lock messages, NETCONF, 189

logic (services), 394

allocate_vlan() method, 396

config_e_routers() method, 396

config_i_routers() method, 397398

config_monitoring() method, 398

create() method, 395

get_interface() method, 397

template variables, 396

loops (feedback)

network management, 8990

telemetry as, 236

Lupton, William, 350351

M

managing

clouds

service management, 18

system-level management, 1718

services

aborted transactions, reasons for, 409

commit-dry-run, 407409

commit, 409

modifying services, 410412

NSO/CLI interaction, 405407

operational state, 409410

restoring services, 412

management architecture

controllers, 6970

operators, 70

orchestrators, 70

RBAC, 70

YANG modules, 70

mandatory leafs, 447

mandatory true constraints, 122123

mandatory true statements, 443

mandatory values, 98, 123124, 126127

mapping

YANG objects from MIB modules, 6869

YANG-to-RESTCONF mapping, 7576

max keyword, lists, 101102

max-element constraints, 449

MEF Forum, YANG development, 265, 266

messages

framing, NETCONF, 169171

NETCONF, 160, 189

close-session messages, 189

commit messages, 189

copy-config messages, 189

delete-config messages, 189

edit-config messages, 176181

get messages, 181184

get-config messages, 174176

get-schema messages, 189

hello messages, 161, 171174

kill-session messages, 189

lock messages, 189

message framing, 169171

overview of, 171

partial-lock messages, 189

validate messages, 189

metadata

extractable/non-extractable metadata, 289

non-extractable/extractable metadata, 289

searching for modules by, by metadata, 288290

sharing, 347349

YANG Catalog

integrating metadata, 355358

keyword searches, 357358

retrieving metadata, 355358

MIB modules

SNMP, 30

writable MIB modules, 33

YANG objects, mapping from MIB modules, 6869

min-elements constraints, 449

missing ranges, 444

mistakes/problems, 443

constraints

applying, 447448

expression performance, 456457

mixing up constraints, 454456

simple constraints, 448449

invalid blank configurations, 447

missing ranges, 444

multikey leafrefs, 451454

overusing strings, 444

strings, bad string patterns, 445446

unclear optional leafs, 443

XPath navigation, 449451

Moberg, Carl, 275278

model-driven telemetry, 86, 231

models

designing, 431432

anydata type, 442443

anyxml type, 442443

augment statements, 442

bits type, grouping features, 437

blank configurations, 435436

boolean types, 440

choosing keys, 439440

choosing YAG identifiers, 435

deviation statements, 441

empty types, 440

enumeration, 437438

identities, 438

if-feature statements, 437438

leafrefs, 436437

naming modules, 433434

publishing modules, 434

reusing groupings, 440441

transient configurations, 442

XPath, 437

modularity, 146

multiple models, implementing for specific functionality, 274275

YANG models, 61

service YANG models, 70

updating, 260

modifying services, 410412

modularity in YANG models, 146

module

backward compatibility, 434, 437, 457

native modules, 460

pyang tool, 459460

rules versus relevancy, 457459

BookZone example, first example of, 99100

bottleneck modules, 349

choosing, 283

compiling, 339340

complexity of, 284

designing, 336

compiling modules, 339340

learning from others, 337339

sharing metadata, 347349

testing modules, 340347

validation, 339340

YANG Catalog and, 337339

deviation statements, 441

directories, 283

finding, 283

grep command, 288

by metadata, 288290

YANG Catalog, 287, 288290

ietf-routing@2018–03–13.yang module, 283284

impact analysis, 349

metadata

integrating from Yang Catalog, 355358

retrieving metadata from Yang Catalog, 355358

sharing, 347349

namespace strings, 433

naming, 100101, 433434

prefix strings, 434

publishing, 434

pyang tool

downloading/installing, 284

embedding, 359361

printing modules in output formats, 285287

viewing modules in tree output, 285287, 305310, 312314

repositories

cloning, 283

creating with YANG Suite tool (YANG Catalog), 301

revision statements, 101

semantic versioning, 460

submodules, 440

testing

ConfD, 340347

yanglit tool, 347

validation, 339340

viewing details via YANG Catalog, 291294

YANG

models, network element YANG modules, 69

namespace statements, 100

tree representations, 102103

YANG Catalog

tree output view, 290291

viewing module details, 291294

YANG Suite tool, 294298, 301302

YANG modules, 61, 70

dependencies, 260262

ietf-routing YANG module, 260

module and submodule RFCs, 257259

module sets, 301

modules and submodules extracted from IETF drafts, 259260

service delivery YANG modules, 70

types of, 6768

module-set-id attributes, NETCONF hello messages, 403

monitoring

SNMP, monitoring versus configuration, 5758

telemetry, events versus monitoring, 239

mulitple keys in key statements, 119

multikey leafrefs, 451454

multiple models, implementing for specific functionality, 274275

must statements, 123124, 126127, 447448

N

namespace statements

prefixes, 100101

YANG modules, 100

namespace strings, 433

naming, 460462

device naming conventions, 385

modules, 100101, 433434

native modules, backward compatibility, 460

natural keys, 439

ncclient, 366371

NCS. See NSO

NETCONF, 7880, 158159

ACID tests, 79, 8182

actions, 184185

Ansible, 317319

ANX, 328329

asynchronous notifications, 82

capabilities, 8182, 153

clients, 159, 160, 161162

client/server interaction, 7778

configuration datastores, 80

defined, 5859, 79

development of, 5859

device configuration

aborted transactions, reasons for, 409

crypto key pairs, 398400

hello messages, 400404

listing device capabilities, 400403

OOB changes, 404405, 409

replying to hello messages, 403404

verifying operation, 400

device synchronization, 413417

event notifications, 243

event notifications, 243

stream notifications, 244

subscription notifications, 243, 244

fundamentals of, 159162

hello messages

conformance type, 403404

listing device capabilities, 400403

module-set-id attributes, 403

replying to hello messages, 403404

interoperability testing, 273

libnetconf2, 371372

messages, 160, 189

close-session messages, 189

commit messages, 189

copy-config messages, 189

delete-config messages, 189

edit-config messages, 176181

framing, 169171

get messages, 181184

get-config messages, 174176

get-schema messages, 189

hello messages, 161, 171174

kill-session messages, 189

lock messages, 189

overview of, 171

partial-lock messages, 189

validate messages, 189

ncclient, 366371

netconf-console, 317

adding static routes, 314315

determining support for devices, 303310

displaying operational data, 315317

gathering configured routing data, 310312

installing, 302303

passing modules to pyang tree view, 312314

network management, 8691

network managers, 159160

network-wide transactions

ABORT phase, 421

COMMIT phase, 421, 422

CONFIRM phase, 422424

point of no return, 422

PREPARE phase, 417421

:notification capabilities, 186

notifications, 185188

operations, 8081

pre-provisioning, 149

preconfiguration, 149

protocol comparison table, 78

RESTCONF and, 8283, 192193

:rollback-on-error capability, 302322

RPCs, 160, 166169, 184185

SDN, 15

security, 82

servers, 159, 160, 161, 186

SSH, 160161

subsystems, 161

transactions, 78

ACID tests, 79, 8182

three-phase transactions, 8182

XML, 75, 160

attributes, 163

namespaces, 163165

processing instructions, 166

tags, 162

YANG and, 5

YANG Suite tool (YANG Catalog), 299302

netconf subsystem, 161

netconf-console, 317

configured routing data, gathering, 310312

installing, 302303

operational data, displaying, 315317

pyang tree view, passing modules to, 312314

static routes, adding, 314315

support for devices, determining, 303310

NetFlow and IPFIX, 4546

basic model, 3435

development of, 3334

flow records, 3536

limitations of, 3637

network diagram, Store Connect service example, 385

network element YANG modules, 69

network management

feedback loops, 8990

NETCONF, 8691

transitioning from network operators to operations engineers, 6061

network managers, NETCONF, 159160

networking trends

CLI and automation, 79

data-model driven management, 1820

data-model driven telemetry, 2022

DevOPS, 1113

elastic clouds (networking trends), 1618

hardware commoditization and disaggregation, 911

intent-based networking, 2223

NFV, 1516

reduced deployment times, 67

SDN, 1315

“software is eating the world,” 2324

NFV (Network Function Virtualization), 5

cloud management, 18

networking trends, 1516

Nilsen-Nygaard, Einar, 331334

NMDA (Network Management Datastore Architecture), 152154, 171

edit-data operations, 189, 190

get-data operations, 189190

origins, 190

NMS (Network Management Systems)

data model-driven management, 7071

data models, 48

information models, 48

IPFIX and, 4546

NetFlow and, 4546

RADIUS, 46, 48

screen-scraping, 4445

SNMP, 28, 44, 45

TACACS+, 4748

non-extractable/extractable metadata, 289

not() function, 128

:notification capabilities, NETCONF, 186

notifications

event notifications, 113, 116117, 243244

NETCONF, 185188, 243244

RESTCONF, 212213

SNMP, 232

YANG, event notifications, 245247

NSO (Network Services Orchestrator), 330, 405

aborted transactions, reasons for, 409

CLI interaction, 405407

commit-dry-run, 407409

commits, 409

device synchronization, 413417

hello messages, device synchronization, 413417

modifying services, 410412

NCS and, 394395

network-wide transactions

ABORT phase, 421

COMMIT phase, 421, 422

CONFIRM phase, 422424

point of no return, 422

PREPARE phase, 417421

publisher configurations, 406407

restoring services, 412

services, operational state, 409410

O

object-oriented identities, 438

on-change subscriptions (telemetry), 239241

OOB (Out-Of-Band) changes, NETCONF configurations, 404405, 409

Open ROADM MSA, 267

open source projects, YANG development, 267268

Open Source Sysrepo project, 267

OpenConfig

gNMI, 8384, 214

OpenConfig Consortium, 214

streaming telemetry, 86

telemetry

OpenConfig streaming telemetry, 248249

YANG Push and Friends versus, 247248

YANG model, 268270

OpenDaylight Project, The, 14

OpenDaylight MD-SAL documentation, 264

YANG development, 263264

OpenFlow, 14

:operational datastore, 153154

operational state, services, 409410

operational telemetry, 231, 232

operations

CRUDX operations, 82

NETCONF, 8081

separating configuration/operational data, 117122

operators, management architecture, 70

OpEx (Operating Expenditures), 1617, 24

optional leafs, 443

orchestrators

data model-driven management, 71

management architecture, 70

ordered-by user lists, 439

origins, NMDA (Network Management Datastore Architecture), 190

output nodes, 130

overusing strings, 444

OVSDB (Open vSwitch Database) management protocol, 14

P

parsers, building with

libyang, 365366

pyang tool, 359361

partial-lock messages, NETCONF, 189

PATCH operations, creating/updating RESTCONF configurations, 205206

pattern statements, 445446

PCEP (Path Computation Element Communication), 14

performance

FCAPS model, 3

IP SLA, 8

SNMP, 30

periodic subscriptions (telemetry), 239241

perl-regex, 445

ping operations, 184

Pipeline, 326327

plug-ins, pyang tool, 361364

point of no return (transactions), 422

pointers, 128131

polling (SNMP), 232234

POST operations, creating/updating RESTCONF configurations, 202203, 210211

Postman, 322325

pre-provisioning, 149

preceeding-sibling:: axes (XPath), 437

preconfigurations, 149

predictates, 129

prefix strings, 434

prefixes, namespace statements, 100101

PREPARE phase (network-wide transactions), 417421

primary language, YANG as, 373

pyangbind, 373

YDK, 373378

printing modules in output formats, pyang tool, 285287

problems/mistakes, 443

constraints

applying, 447448

expression performance, 456457

mixing up constraints, 454456

simple constraints, 448449

invalid blank configurations, 447

missing ranges, 444

multikey leafrefs, 451454

overusing strings, 444

strings, bad string patterns, 445446

unclear optional leafs, 443

XPath navigation, 449451

Pronghorn, 330331

Protobufs, 76

compact mode, 242243

self-describing mode, 242243

protocols

binding. See encodings

gNMI, protocol comparison table, 78

NETCONF, protocol comparison table, 78

RESTCONF, protocol comparison table, 78

provisioning, 149

pub/sub services, 244

publishers (telemetry), 237

publishing modules, 434

purchase operations, 184185

PUT operations, creating/updating RESTCONF configurations, 203204

pyang tool

backward compatibility, 459460

downloading/installing, 284

embedding, 359361

plug-ins, 361364

printing modules in output formats, 285287

tree output, viewing modules in, 285287, 305310, 312314

pyangbind, 85, 373

Python, 1112

ncclient, 366371

Netconf-console, 317

configured routing data, gathering, 310312

installing, 302303

operational data, displaying, 315317

pyang tree view, passing modules to, 312314

static routes, adding, 314315

support for devices, determining, 303310

pyang tool

embedding, 360361

parsers, 359361

YANG Catalog, retrieving metadata, 357

python-regex, 445

Q

quadratic complexity (expressions), 456

R

RADIUS (Remote Authentication Dial-In User Service), 46, 48

ranges (missing), 444

RBAC (Role-Based Access Control), 70

reduced deployment times (networking trends), 67

regex patterns, 445

repositories (modules)

cloning, 283

creating, YANG Suite tool (YANG Catalog), 301

require instance false statements, 390, 436437

REST APIs and YANG Catalog, 355356

RESTCONF, 8283, 190, 319

actions, 210211

calls

as transactions, 83

validation, 83

collections, 202

configurations, creating/updating, 201202

DELETE operations, 206

PATCH operations, 205206

POST operations, 202203, 210211

PUT operations, 203204

YANG-PATCH operations, 207210

cURL, 319321

curl command, 194, 207208, 213

data-model driven management, 6364

HTTPie, 302303

jq command, 302322

JSON and, 7576

NETCONF and, 8283, 192193

notifications, 212213

operations, CRUDX operations, 82

Postman, 322325

principles of, 191192

protocol comparison table, 78

resources, reading/navigating, 194201

servers, 193194, 372

YANG-to-RESTCONF mapping, 7576

restoring services, 412

reusing, groupings, 440441

revision statements, 101, 109112, 116117

RFCs (Remote Function Calls)

key data model-driven RFCs, 256257

RFC 3444, 64

RFC 3535, 5658, 65, 9091, 159, 222

RFC 5277, 243244, 245246, 247

RFC 6020, 63

RFC 6241, 6869, 79, 159

RFC 6242, 159

RFC 6244, 65

RFC 6643, 69

RFC 7047, 14

RFC 7049, 76

RFC 7159, 7576

RFC 7223, 69, 150151

RFC 7252, 84

RFC 7650, 63

RFC 7923, 244, 245246

RFC 8040, 76, 83

RFC 8259, 75

RFC 8340, 103

RFC 8341, 70

RFC 8342, 152, 153

RFC 8343, 152

RFC 8407, 430

YANG module and submodule RFCs, 257259

ROADM, Open ROADM MSA and YANG development, 267

:rollback-on-error capability, NETCONF, 302322

routers, telemetry

destination groups, 241

sensor groups, 241

subscriptions, 241

RPCs (Remote Procedure Calls), 113116

gRPC, 214215

NETCONF, 160, 166169, 184185

ping operations, 184

purchase operations, 184185

setup-interface operations, 184

YANG Suite tool (YANG Catalog), 294298

:running datastore, 152

S

schemas, 63

defined, 63

get-schema messages, NETCONF, 189

instance data and, 97

nodes, 115, 130142

representing data in, 9798

tree paths, 450

XSD, 75

Schonwalder, Jurgen, 9192

screen-scraping, 4445

scripts, YANG Suite tool (YANG Catalog), 294298

SDN (Software-Defined Networking), 45, 15

BGP-LS distribution, 15

as control plane separation paradigm, 15

Forces, 15

NETCONF/YANG, 15

networking trends, 1315

OpenFlow, 14

PCEP, 14

SDOs, YANG development, 267268

search API, YANG Catalog, 357358

searching

// search operator (XPath), 437

modules

grep command, 288

by metadata, 288290

YANG Catalog, YANG Search feature, 288290

YANG Catalog, keyword metadata searches, 357358

security

FCAPS model, 3, 4

NETCONF, 82

self-describing mode (Protobufs), 242243

semantic versioning, 460

sensor groups (routers/telemetry), 241

sensor paths, telemetry architectures, 238

serialization. See encodings

servers

architectures (datastores), 7778

:candidate datastore, 152

:intended datastore, 153154

:operational datastore, 153154

:running datastore, 152

:startup datastore, 152

NETCONF, 80

NMDA, 152154

pub/sub services, 244

NETCONF, 159, 160, 161, 186

RESTCONF servers, 193194, 372

SSH, 161162

service delivery YANG modules, 70

service YANG models, 70

services

assembling, 45

assurance, 5

automation, 4

bottom-up device templates, service development, 392394

chaining, 45

cloud management, 18

customer experience, 4

delivery, 4

deploying, reduced deployment times (networking trends), 7

device synchronization, 413417

logic, 394

allocate_vlan() method, 396

config_e_routers() method, 396

config_i_routers() method, 397398

config_monitoring() method, 398

create() method, 395

get_interface() method, 397

template variables, 396

managing

aborted transactions, reasons for, 409

commit dry-run, 407409

commits, 409

modifying services, 410412

NSO/CLI interaction, 405407

operational state, 409410

restoring services, 412

network-wide transactions

ABORT phase, 421

COMMIT phase, 421, 422

CONFIRM phase, 422424

point of no return, 422

PREPARE phase, 417421

NSO, 330

Pronghorn, 330331

pub/sub services, 244

SFC, 45

Store Connect service example, 385

bottom-up device templates, 392394

device naming conventions, 385

network diagram, 385

networking staff tasks, 386

service logic, 394398

service management, 405412

top-down service development, 386392

top-down service development, 386392

SetRequest operations (gNMI), 219224

setup-interface operations, 184

SFC (Service Function Chaining), 45

sftp subsystems, 161

sharing module metadata, 347349

show commands

CLI, 8

show interface command, 44

SNMP (Simple Network Management Protocol), 27, 32, 158159

basic model, 28

correlating with syslog messages, 45

GetBulk operations, 232, 233

GetNext operation, 232, 233

interface table, 233

limitations of, 29, 3032, 44

MIB modules, 30, 33

monitoring versus configuration, 5758

notifications, 232

performance, 30

polling, 232234

requirements for, 30

SNMP Agents, 2829

SNMP Manager, 2829

SNMPsec, 27

SNMPv1, 27, 29

SNMPv2c, 27

SNMPv2p, 27

SNMPv2u, 27

SNMPv3, 2728, 29

telemetry

data-model driven telemetry versus SNMP, 2122

transitioning to, 232235

UDP and, 233234

uses of, 29

software

Andreessen, Mark, 23

disaggregation, 911

SDN, 1314, 15

BGP-LS distribution, 15

as control plane separation paradigm, 15

Forces, 15

NETCONF/YANG, 15

OpenFlow, 14

PCEP, 14

“software is eating the world” (networking trends), 2324

splitting functionality, 146

SSH (Secure Shell)

ncclient, 367368

NETCONF, 160161

servers, 161162

subsystems, sftp, 161

:startup datastore, 152

status deprecated statements, 458459

status obsolete statements, 458459

Store Connect service example, 385. See also BookZone example

device naming conventions, 385

device synchronization, 413417

network diagram, 385

networking staff tasks, 386

network-wide transactions

ABORT phase, 421

COMMIT phase, 421, 422

CONFIRM phase, 422424

point of no return, 422

PREPARE phase, 417421

service development

bottom-up device templates, 392394

top-down development, 386392

service logic, 394398

service management

aborted transactions, reasons for, 409

commit dry-run, 407409

commits, 409

modifying services, 410412

NSO/CLI interaction, 405407

operational state, 409410

restoring services, 412

stream notifications (NETCONF), 244

streaming telemetry, 238, 248249

strings, 101, 103104

bad string patterns, 445446

defining type of, 104105

overusing strings, 444

subclassing, 107

submodules, 440

RFCs, 257259

submodules extracted from IETF drafts, 259260

SubscribeRequest operations (gNMI), telemetry, 224225

subscription notifications (NETCONF), 243, 244

subscriptions (telemetry)

configured subscriptions, 246

creating, 241

dynamic subscriptions, 246247

IETF YANG subscriptions, 244245

on-change subscriptions, 239241

periodic subscriptions, 239241

requests, 238

subsystems

NETCONF, 161

SSH, sftp, 161

synchronization (devices), 413417

“syntactic sugar,” 454

synthetic keys, 439

Syslog, 3738

basic model, 38

defined, 38

limitations of, 39

messages, correlating SNMP with, 45

Sysrepo, YANG development, 267

system origins (NMDA), 190

T

tables

categorizing data, 106

representing data in, 97

TACACS+ (Terminal Access Controller Access-Control System Plus), 4748

telemetry, 86, 231, 325

ANX, 328329

architectures, 236238

business telemetry, 231232

Clemm, Alex, 249252

collectors, 237

conditional telemetry, 236

data-model driven telemetry

defined, 21

exporting data models, 2122

hardware-based telemetry versus, 2122

mapping data models, 22

need for, 2122

networking trends, 2022

reasons for using, 2122

SNMP versus, 2122

defined, 230, 231

dial-in/dial-out modes, 241243

encodings (protocol binding/serialization), 238

events

monitoring versus, 239

NETCONF event notifications, 243244

YANG event notifications, 245247

feedback loops, 236

hardware-based telemetry versus data-model driven telemetry, 2122

mechanisms, 242243

model-driven telemetry, 86, 231

monitoring, events versus, 239

OpenConfig telemetry

OpenConfig streaming telemetry, 86, 248249

YANG Push and Friends versus, 247248

operational telemetry, 231, 232

Pipeline, 326327

publishers, 237

routers

destination groups, 241

sensor groups, 241

subscriptions, 241

sensor paths, 238

SNMP, transitioning to telemetry, 232235

streaming telemetry, 238, 248249

SubscribeRequest operations (gNMI), 224225

subscriptions

on-change subscriptions, 239241

configured subscriptions, 246

creating, 241

dynamic subscriptions, 246247

IETF YANG subscriptions, 244245

periodic subscriptions, 239241

requests, 238

transport protocols, 238, 239

use cases, 235236

YANG Push and Friends, 244245, 247248

templates

bottom-up device templates, service development, 392394

services, variables, 396

testing

interoperability testing, 272274

modules

ConfD, 340347

yanglit tool, 347

title mandatory value (BookZone example), 98, 99

top-down service development, 386392

transactions (NETCONF), 78

ACID tests, 79, 8182

three-phase transactions, 8182

transient configurations, model design, 442

transport protocols, 238, 239

tree diagrams, with XPath navigation, 124125

tree output view

pyang tool, 303310, 312314

YANG Catalog, 290291

tree representations, 102103, 150151

true values, 98

type definitions, 104105

type statements, 98

typedef, reusing groupings, 440

U

UDP (User Datagram Protocol), SNMP and, 233234

UML (Unified Modeling Language), 40, 64

unclear optional leafs, 443

union YANG construct, type definitions, 105

unique constraints, 449

unique statements, 125126, 456457

unknown origins (NMDA), 190

updating YANG models, 260

URL (Uniform Resource Locators)

cURL (client URL), 319321

server URL finding in RESTCONF, 193194

uses nodes, 130

uses statements, 119, 441

UUID (Universally Unique Identifiers), 439

V

validation

modules, 339340

RESTCONF calls, 83

validate messages, NETCONF, 189

YANG Validator, 339340

YANGRE, 340

versioning, 146

virtualization

NFV, 5, 1516

VNF, 5

VRF (Virtual Routing and Forwarding) and CLI, 25

W

W3C-regex, 445

Ward, David, 15

Watsen, Kent, 225226

when statements, 127

White, Russ, 5052

writable MIB modules, 33

X

XML (Extensible Markup Language), 75

ncclient, 367368

NETCONF, 7980, 160

attributes, 163

namespaces, 163165

processing instructions, 166

tags, 162

XSD, 75

XPath, 9899

// search operator, 437

axes, 437

common mistakes/problems

mixing up constraints, 454456

path navigation, 449451

current() function, 126127, 454

data tree paths, 450

deref() function, 124, 453454, 455

derived-from() function, 128

expressions

performance, 456457

quadratic complexity, 456

inequality operator (!=), 455

model design, 437

navigation, 449451

not() function, 128

predictates, 129

schema tree paths, 450

tree diagrams, 124125

XPath 1.0, 437

xRAN, 267

XSD (XML Schema Description), 75

Y – Z

YANG, 63

3GPP and YANG development, 267

actions, 113116

as API contract language, 61

augment statements, 142146

bases (identities), 107

basic model, 61

BBF and YANG development, 265

case nodes, 115

choice nodes, 115

constraints, 122, 123, 125

mandatory true constraints, 122123

must statements, 123124, 126127

unique statements, 125126

containers, 98, 127128

defined, 61, 63

development of, 154156, 265

3GPP and, 267

BBF and, 265

DMTF and, 266

ETSI and, 267

FD.io and, 267

IEEE and, 266

IETF and, 256262

industry coordination, 270272

interoperability testing, 272274

ITU-T Standardization Sector, 267

MEF Forum and, 265, 266

Open ROADM MSA and, 267

open source projects, 267268

OpenDaylight Project, The, 263264

SDOs and, 267268

Sysrepo and, 267

xRAN and, 267

deviation statements, 148149

DMTF and YANG development, 266

ETSI and YANG development, 267

events

actions, 113116

notifications, 113, 116117, 245247

RPC, 113116

extension keywords, 146148

FD.io and YANG development, 267

functions of, 62

grouping data, 119

identifiers, case-sensitivity, 104

identities, 107, 108

bases, 107

identityref, 108109

IEEE and YANG development, 266

IETF and YANG development

dependencies, 260262

ietf-routing YANG module, 260

key data model-driven RFCs, 256257

models, 260

module and submodule RFCs, 257259

modules and submodules extracted from IETF drafts, 259260

industry coordination, 270272

interoperability testing, 272274

ITU-T and YANG development, 267

key title statements, 98

language native (primary), making, 373

pyangbind, 378380

YDK, 373378

languages, 103104

leafrefs, 103

leafs, 98

default statements, 122123

empty leafs, 116

leafrefs, 103, 128142

mandatory values, 98

true values, 98

type statements, 98

lists, 98, 103

MEF Forum and YANG development, 265, 266

models, 61

modularity, 146

service YANG models, 70

updating, 260

modules, 61, 70

BookZone example, 99100

dependencies, 260262

designing, 336349

ietf-routing YANG module, 260

module and submodule RFCs, 257259

modules and submodules extracted from IETF drafts, 259260

namespace statements, 100

naming, 100101

network element YANG modules, 69

revision statements, 101

service delivery YANG modules, 70

tree representations, 102103

types of, 6768

must statements, 123124, 126127

NETCONF and, 5, 15

notifications (event), 113, 116117, 245247

objects, mapping from MIB modules, 6869

Open ROADM MSA and YANG development, 267

open source projects and YANG development, 267268

OpenDaylight Project and Yang development, 263264

operators requirements, 65

parsers, building with pyang tool, 359361

pointers, 128131

RESTCONF, YANG-to-RESTCONF mapping, 7576

revision statements, 109112, 116117

RPCs, 113116

schema nodes, 115, 130142

SDOs and YANG development, 267268

strings, 101, 103105

subclassing, 107

Sysrepo and YANG development, 267

tree diagrams, with XPath navigation, 124125

tree representations, 102103

type definitions, 104105

union YANG construct, 105

unique statements, 125126

uses statements, 119

xRAN and YANG development, 267

YANG-PATCH operations (RESTCONF), 207210

YANG 1.0, 63, 75

YANG 1.1, 63, 100

YANG Catalog, 272

API calls, 355358

development of, 287288

finding modules, 287

impact analysis, 349

metadata

integrating metadata, 355358

keyword searches, 357358

retrieving metadata, 355358

modules

designing, 337339, 347349

impact analysis, 349

integrating metadata, 355358

retrieving metadata from Yang Catalog, 355358

sharing metadata, 347349

REST APIs, 355356

search API, 357358

tree output view, 290291

viewing module details, 291294

YANG Push and Friends, 244245, 247248

YANG Search feature (YANG Catalog)

extractable/non-extractable metadata, 289

searching modules by metadata, 288290

YANG Suite tool (YANG Catalog), 294298, 299, 302

device profiles, 300301

distributions, 299

installing, 299

repositories (modules), creating, 301

YANG module sets, 301

YANG Validator, 339340

yanglit tool, testing modules, 347

YANG-PATCH operations, creating/updating RESTCONF configurations, 207210

YANGRE, YANG module validation, 340

YDK (YANG Development Kit), 85

goal of, 71

YANG as native (primary) language, 373378

ydk-gen (YDK Generator), 377378

Ygot (YANG go tool), 85

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.16.15.149