SlideShare a Scribd company logo
1 of 16
Download to read offline
YANG push Integration
into Apache Kafka
1
Zhuoyao Lin
IETF 118 - NETCONF
TABLE OF CONTENT
I. Introduction
• Motivation
• Overview
II. Problems
• Problems and
proposed solution
• Chosen solution
III. Proposal
• Augmenting the ietf-
yang-library
2
I. INTRODUCTION: Motivation
Challenge of Network Management
Networks are growing and being more and more complex to manage.
A costly task for network operators is to identify and correct network issues.
This involves three steps:
• Detect that there is an issue,
• Identify the cause of issue,
• Correct the issue
Today, it is often the customer that notifies the operator about an issue.
Then the cause detection and correction of an issue is done by expert engineers.
The challenge of the network management industry today, is to automate the detection,
identification and correction of the problem, which is the frame we are trying to achieved.
The project will be deployed into production at the end.
3
I. INTRODUCTION: Motivation
Network Analytics
Nowadays Network Analytics
requires to correlate metrics
from various sources to make
accurate detection/prediction.
There are different sources
and protocols to collect
metrics. Here we focus on the
YANG push protocol.
The metrics are the foundation
to network analytics. We must
have reliable and meaningful
data collection.
Data Mesh
The principle of Data Mesh is to
present the data as a product.
The quality of the data is
guarantee by the team preparing
the data.
In our case, the collected data
comes with the YANG model. 4
Missing Semantics
In the TSDB, YANG model
semantics might be lost. It is not
clear how to interpret the data.
An example: Temperature
YANG push Receiver
Apart from collecting YANG
data, the receiver needs to be
extended to register schema
for YANG subscription.
This is the goal of libyangpush.
YANG Schema Registry
5
A solution to keep the
semantics is to have a schema
registry. Each message in Kafka
contains a schema id pointing
to the original YANG model.
Schema will be used during
serialization and deseralization.
I. INTRODUCTION: Overview
pmacct: A multi-purpose
Network Monitoring
tool(https://github.com/pmac
ct/pmacct)
Schema registry: Confluent
pluggable schema registry has
been extended to natively
support YANG.
YANG push:
1. Subscription to YANG
Notifications for Datastore
Updates - RFC 8641
2. draft-ietf-netconf-udp-notif-
11
It is partially being supported
in the device
I. INTRODUCTION: Overview and Current State
TABLE OF CONTENT
• Motivation
• Overview
II. Problems
• Problems and
proposed solution
• Chosen solution
III. Proposal
• Augmenting the ietf-
yang-library
7
II. Problems
II. PROBLEMS
8
Problem 1:
How to store YANG model in schema
registry?
Problem 2:
How to know the subscribed model?
(On the basis that the YANG push
subscription is providing telemetry
data)
Problem 3:
How to obtain the YANG model and
its dependencies?
II. PROBLEM 1: How to store YANG model in
schema registry?
9
Simulate YANG data structure:
Schema Content <-> YANG model
code
Schema Reference <-> YANG model
dependency
Functionality of schema registry:
Validate YANG model and its
dependencies relationship
II. PROBLEM 2: How to know the subscribed model?
10
Solution 2:
Use YANG to get subscription information:
Subscribed YANG models can be known by parsing fields:
datastore-xpath-filter or datastore-subtree-filter. The
subscription is identified by a sub-id.
This information is exposed as YANG model. It can be obtain:
• As a subscription. Subscription will be synced through the
first push-update, and updated through the push-change-
update(new added, edit, remove etc.)
• Via NETCONF <get> operation. Send a <get> to obtain the
same information.
Solution 1:
Parse namespaces in the first YANG push message
It is possible to find the reverse dependency in this
way.
<subscriptions>
<subscription>
<id>6666</id>
<datastore>ds:operational</datastore>
<datastore-xpath-filter>
/a-module:a
</datastore-xpath-filter>
<encoding>encode-xml</encoding>
<periodic>
<period>30000</period>
</periodic>
</subscription>
</subscriptions>
II. PROBLEM 3: How to obtain the YANG model
and its dependencies?
11
Solution 1:
On-demand Downloading
There are two possible implementation solutions,
each with pros and cons
The idea of on-demand downloading is to send get-
schema request to get the YANG models based on the
model name we obtain. For the main model in the
subscription, we can obtain its name using method in
“identify model”.
Import and include can parsed from the YANG code.
Deviate can be known by subscribing to /ietf-yang-
library:modules-state.
Pros: schema is update-to-date
Cons: Cannot handle augment
Solution 2:
Get-all-schema
The main idea of get-all-schemas is to get all models,
store them in the disk, and analyse their full
dependencies (import, include, deviate and augment)
at the beginning of connection.
Pros: Can handle all dependencies
Cons: Downloading all schemas takes a lot of time
12
Algorithm for finding dependency
Expend on DFS to traverse the YANG model dependency
tree, for the main model: sequentially search for its
import, include, augment and deviate. For its
dependency model, we only search for their import and
include.
The model with the greatest depth will be put into
register list first, then the top level module, in order to
ensure that each register model has the dependency to
refers to in the schema registry.
A hash map is used throughout the traverse with the
index being djb2 hash of the model name to make sure
that the model will not be put into register list twice.
The YANG source can be obtained via NETCONF <get-schema>.
Now we need to obtain the full schema and dependencies.
II. PROBLEM 3: How to obtain the YANG model
and its dependencies?
II. PROBLEMS: An example for the chosen solution
13
module: a-module
+--rw a
+--rw a-instance* [name]
| +--rw name string
| +--rw state? string
+--rw d:y
+--rw d:y-leaf? e:e-enum
The schema for a-module
require to register a-modules, e-
module and d-module.
a-module
d-module
augment
e-module
import
Schema registration Order:
a-module, reference{}
e-module, reference{}
d-module, reference{e-module, a-module}
a-module, reference{d-module, e-module}
<subscriptions>
<subscription>
<id>6666</id>
<datastore>ds:operational</datastore>
<datastore-xpath-filter>
/a-module:a
</datastore-xpath-filter>
<encoding>encode-xml</encoding>
<periodic>
<period>30000</period>
</periodic>
</subscription>
</subscriptions>
TABLE OF CONTENT
I. Introduction
• Motivation
• Overview
III. Proposal
• Augmenting the ietf-
yang-library
14
II. Problems
• Problems and
proposed solution
• Chosen solution
III. Proposal: Augmenting YANG model
ietf-yang-library
15
Problem 3:
How to obtain the YANG model and its dependencies?
Explanation:
As for the current chosen solution, we cannot invalidate
the model stored in disk when they have been updated
in the device. As a way to get the most up-to-date
reverse dependency model, the on-demand
downloading only support checking for deviations
currently. However, it is reasonable to augment to make
the ietf-yang-library to also support storing the
augmentations.
In this way, we can get rid of having to use the get-all-
schemas solution, while we can also handle the reverse
dependencies easily.
IV. Conclusion & Future Work
16
Demo is presented during IETF117 Hackathon:
https://wiki.ietf.org/en/meeting/117/hackathon#net
work-telemetry-yang-push-integration-into-apache-
kafka
Demonstrate the interaction with a working YANG
schema registry during the demo
Github repository for libyangpush:
https://github.com/network-analytics/libyangpush.git
Outcomes
• Deploy the functionalities into Swisscom lab.
Future Work
• Integration with pmacct
• Test with device as YANG push becomes
better supported
• Augment YANG model ietf-yang-library to
support the record of augmentations(to
support the on-demand downloading)
Gaps to fill
Industry Post:
https://github.com/graf3net/draft-daisy-kafka-yang-integration/blob/main/draft-daisy-kafka-
yang-integration-05.md
https://www.linkedin.com/pulse/network-analytics-ietf-115-london-thomas-graf/
https://www.linkedin.com/pulse/network-analytics-ietf-116-yokohama-thomas-graf/
https://www.linkedin.com/pulse/network-analytics-ietf-117-san-francisco-thomas-graf/

More Related Content

Similar to YANG push Integration into Apache Kafka

Netfilter: Making large iptables rulesets scale
Netfilter: Making large iptables rulesets scaleNetfilter: Making large iptables rulesets scale
Netfilter: Making large iptables rulesets scalebrouer
 
Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Satoshi Konno
 
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016DataStax
 
Tcp performance Final Report
Tcp performance Final Report Tcp performance Final Report
Tcp performance Final Report ambitlick
 
IPv4 to IPv6 network transformation
IPv4 to IPv6 network transformationIPv4 to IPv6 network transformation
IPv4 to IPv6 network transformationNikolay Milovanov
 
Train, predict, serve: How to go into production your machine learning model
Train, predict, serve: How to go into production your machine learning modelTrain, predict, serve: How to go into production your machine learning model
Train, predict, serve: How to go into production your machine learning modelCloudera Japan
 
IncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the CloudIncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the CloudGábor Szárnyas
 
Angular 2 overview in 60 minutes
Angular 2 overview in 60 minutesAngular 2 overview in 60 minutes
Angular 2 overview in 60 minutesLoiane Groner
 
The road ahead for scientific computing with Python
The road ahead for scientific computing with PythonThe road ahead for scientific computing with Python
The road ahead for scientific computing with PythonRalf Gommers
 
AdaEurope 2013 - Berlin - Industrial Experience - Feedback on improving perfo...
AdaEurope 2013 - Berlin - Industrial Experience - Feedback on improving perfo...AdaEurope 2013 - Berlin - Industrial Experience - Feedback on improving perfo...
AdaEurope 2013 - Berlin - Industrial Experience - Feedback on improving perfo...AdaLabs
 
Introduction to netlink in linux kernel (english)
Introduction to netlink in linux kernel (english)Introduction to netlink in linux kernel (english)
Introduction to netlink in linux kernel (english)Sneeker Yeh
 
Distributed Database practicals
Distributed Database practicals Distributed Database practicals
Distributed Database practicals Vrushali Lanjewar
 
Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...
Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...
Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...Nikhil Jain
 
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptx
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptxFAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptx
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptxgattamanenitejeswar
 

Similar to YANG push Integration into Apache Kafka (20)

Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016
 
Netfilter: Making large iptables rulesets scale
Netfilter: Making large iptables rulesets scaleNetfilter: Making large iptables rulesets scale
Netfilter: Making large iptables rulesets scale
 
Caffe2
Caffe2Caffe2
Caffe2
 
Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016
 
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
Cassandra @ Yahoo Japan (Satoshi Konno, Yahoo) | Cassandra Summit 2016
 
Tcp performance Final Report
Tcp performance Final Report Tcp performance Final Report
Tcp performance Final Report
 
IPv4 to IPv6 network transformation
IPv4 to IPv6 network transformationIPv4 to IPv6 network transformation
IPv4 to IPv6 network transformation
 
Train, predict, serve: How to go into production your machine learning model
Train, predict, serve: How to go into production your machine learning modelTrain, predict, serve: How to go into production your machine learning model
Train, predict, serve: How to go into production your machine learning model
 
IncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the CloudIncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the Cloud
 
Angular 2 overview in 60 minutes
Angular 2 overview in 60 minutesAngular 2 overview in 60 minutes
Angular 2 overview in 60 minutes
 
The road ahead for scientific computing with Python
The road ahead for scientific computing with PythonThe road ahead for scientific computing with Python
The road ahead for scientific computing with Python
 
Distributed Systems in Data Engineering
Distributed Systems in Data EngineeringDistributed Systems in Data Engineering
Distributed Systems in Data Engineering
 
AdaEurope 2013 - Berlin - Industrial Experience - Feedback on improving perfo...
AdaEurope 2013 - Berlin - Industrial Experience - Feedback on improving perfo...AdaEurope 2013 - Berlin - Industrial Experience - Feedback on improving perfo...
AdaEurope 2013 - Berlin - Industrial Experience - Feedback on improving perfo...
 
Clean sw 3_architecture
Clean sw 3_architectureClean sw 3_architecture
Clean sw 3_architecture
 
Mina2
Mina2Mina2
Mina2
 
Introduction to netlink in linux kernel (english)
Introduction to netlink in linux kernel (english)Introduction to netlink in linux kernel (english)
Introduction to netlink in linux kernel (english)
 
Ns0 157(6)
Ns0 157(6)Ns0 157(6)
Ns0 157(6)
 
Distributed Database practicals
Distributed Database practicals Distributed Database practicals
Distributed Database practicals
 
Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...
Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...
Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTIO...
 
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptx
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptxFAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptx
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptx
 

More from ThomasGraf42

BMP Peer Up Message Namespace
BMP Peer Up Message NamespaceBMP Peer Up Message Namespace
BMP Peer Up Message NamespaceThomasGraf42
 
Semantic Metadata Annotation for Network Anomaly Detection
Semantic Metadata Annotation for Network Anomaly DetectionSemantic Metadata Annotation for Network Anomaly Detection
Semantic Metadata Annotation for Network Anomaly DetectionThomasGraf42
 
Support of Hostname and Sequencing in YANG Notifications
Support of Hostname and Sequencing in YANG NotificationsSupport of Hostname and Sequencing in YANG Notifications
Support of Hostname and Sequencing in YANG NotificationsThomasGraf42
 
UDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured SubscriptionsUDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured SubscriptionsThomasGraf42
 
Subscription to Distributed Notifications
Subscription to Distributed NotificationsSubscription to Distributed Notifications
Subscription to Distributed NotificationsThomasGraf42
 
YANG Grouping for UDP Clients and UDP Servers
YANG Grouping for UDP Clients and UDP ServersYANG Grouping for UDP Clients and UDP Servers
YANG Grouping for UDP Clients and UDP ServersThomasGraf42
 
YANG model for NETCONF Event Notifications
YANG model for NETCONF Event NotificationsYANG model for NETCONF Event Notifications
YANG model for NETCONF Event NotificationsThomasGraf42
 
slides-117-nmrg-sessb-data-management-paradigms-data-fabric-and-data-mesh-00.pdf
slides-117-nmrg-sessb-data-management-paradigms-data-fabric-and-data-mesh-00.pdfslides-117-nmrg-sessb-data-management-paradigms-data-fabric-and-data-mesh-00.pdf
slides-117-nmrg-sessb-data-management-paradigms-data-fabric-and-data-mesh-00.pdfThomasGraf42
 
slides-117-opsawg-modeling-the-digital-map-based-on-rfc8345-sharing-experienc...
slides-117-opsawg-modeling-the-digital-map-based-on-rfc8345-sharing-experienc...slides-117-opsawg-modeling-the-digital-map-based-on-rfc8345-sharing-experienc...
slides-117-opsawg-modeling-the-digital-map-based-on-rfc8345-sharing-experienc...ThomasGraf42
 
slides-117-grow-grow-bmp-enhancements-to-frrouting-00.pdf
slides-117-grow-grow-bmp-enhancements-to-frrouting-00.pdfslides-117-grow-grow-bmp-enhancements-to-frrouting-00.pdf
slides-117-grow-grow-bmp-enhancements-to-frrouting-00.pdfThomasGraf42
 
slides-117-grow-draft-francios-grow-bmp-loc-peer-00.pdf
slides-117-grow-draft-francios-grow-bmp-loc-peer-00.pdfslides-117-grow-draft-francios-grow-bmp-loc-peer-00.pdf
slides-117-grow-draft-francios-grow-bmp-loc-peer-00.pdfThomasGraf42
 
slides-117-grow-bmp-peer-up-message-namespace-00.pdf
slides-117-grow-bmp-peer-up-message-namespace-00.pdfslides-117-grow-bmp-peer-up-message-namespace-00.pdf
slides-117-grow-bmp-peer-up-message-namespace-00.pdfThomasGraf42
 
slides-117-anrw-sessb-daisy-practical-anomaly-detection-in-large-bgpmpls-and-...
slides-117-anrw-sessb-daisy-practical-anomaly-detection-in-large-bgpmpls-and-...slides-117-anrw-sessb-daisy-practical-anomaly-detection-in-large-bgpmpls-and-...
slides-117-anrw-sessb-daisy-practical-anomaly-detection-in-large-bgpmpls-and-...ThomasGraf42
 
BMP Extension for Path Status TLV
BMP Extension for Path Status TLVBMP Extension for Path Status TLV
BMP Extension for Path Status TLVThomasGraf42
 
TLV support for BMP Route Monitoring and Peer Down Messages
TLV support for BMP Route Monitoring and Peer Down MessagesTLV support for BMP Route Monitoring and Peer Down Messages
TLV support for BMP Route Monitoring and Peer Down MessagesThomasGraf42
 
BMP Loc-RIB: Peer address
BMP Loc-RIB: Peer addressBMP Loc-RIB: Peer address
BMP Loc-RIB: Peer addressThomasGraf42
 
UDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured SubscriptionsUDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured SubscriptionsThomasGraf42
 
On-Path delay in Postcard-mode In Situ OAM
On-Path delay in Postcard-mode In Situ OAMOn-Path delay in Postcard-mode In Situ OAM
On-Path delay in Postcard-mode In Situ OAMThomasGraf42
 
YANG Push Workflow
YANG Push WorkflowYANG Push Workflow
YANG Push WorkflowThomasGraf42
 

More from ThomasGraf42 (20)

BMP Peer Up Message Namespace
BMP Peer Up Message NamespaceBMP Peer Up Message Namespace
BMP Peer Up Message Namespace
 
Semantic Metadata Annotation for Network Anomaly Detection
Semantic Metadata Annotation for Network Anomaly DetectionSemantic Metadata Annotation for Network Anomaly Detection
Semantic Metadata Annotation for Network Anomaly Detection
 
Support of Hostname and Sequencing in YANG Notifications
Support of Hostname and Sequencing in YANG NotificationsSupport of Hostname and Sequencing in YANG Notifications
Support of Hostname and Sequencing in YANG Notifications
 
UDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured SubscriptionsUDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured Subscriptions
 
Subscription to Distributed Notifications
Subscription to Distributed NotificationsSubscription to Distributed Notifications
Subscription to Distributed Notifications
 
YANG Grouping for UDP Clients and UDP Servers
YANG Grouping for UDP Clients and UDP ServersYANG Grouping for UDP Clients and UDP Servers
YANG Grouping for UDP Clients and UDP Servers
 
YANG model for NETCONF Event Notifications
YANG model for NETCONF Event NotificationsYANG model for NETCONF Event Notifications
YANG model for NETCONF Event Notifications
 
slides-117-nmrg-sessb-data-management-paradigms-data-fabric-and-data-mesh-00.pdf
slides-117-nmrg-sessb-data-management-paradigms-data-fabric-and-data-mesh-00.pdfslides-117-nmrg-sessb-data-management-paradigms-data-fabric-and-data-mesh-00.pdf
slides-117-nmrg-sessb-data-management-paradigms-data-fabric-and-data-mesh-00.pdf
 
slides-117-opsawg-modeling-the-digital-map-based-on-rfc8345-sharing-experienc...
slides-117-opsawg-modeling-the-digital-map-based-on-rfc8345-sharing-experienc...slides-117-opsawg-modeling-the-digital-map-based-on-rfc8345-sharing-experienc...
slides-117-opsawg-modeling-the-digital-map-based-on-rfc8345-sharing-experienc...
 
slides-117-grow-grow-bmp-enhancements-to-frrouting-00.pdf
slides-117-grow-grow-bmp-enhancements-to-frrouting-00.pdfslides-117-grow-grow-bmp-enhancements-to-frrouting-00.pdf
slides-117-grow-grow-bmp-enhancements-to-frrouting-00.pdf
 
slides-117-grow-draft-francios-grow-bmp-loc-peer-00.pdf
slides-117-grow-draft-francios-grow-bmp-loc-peer-00.pdfslides-117-grow-draft-francios-grow-bmp-loc-peer-00.pdf
slides-117-grow-draft-francios-grow-bmp-loc-peer-00.pdf
 
slides-117-grow-bmp-peer-up-message-namespace-00.pdf
slides-117-grow-bmp-peer-up-message-namespace-00.pdfslides-117-grow-bmp-peer-up-message-namespace-00.pdf
slides-117-grow-bmp-peer-up-message-namespace-00.pdf
 
slides-117-anrw-sessb-daisy-practical-anomaly-detection-in-large-bgpmpls-and-...
slides-117-anrw-sessb-daisy-practical-anomaly-detection-in-large-bgpmpls-and-...slides-117-anrw-sessb-daisy-practical-anomaly-detection-in-large-bgpmpls-and-...
slides-117-anrw-sessb-daisy-practical-anomaly-detection-in-large-bgpmpls-and-...
 
BMP YANG Module
BMP YANG ModuleBMP YANG Module
BMP YANG Module
 
BMP Extension for Path Status TLV
BMP Extension for Path Status TLVBMP Extension for Path Status TLV
BMP Extension for Path Status TLV
 
TLV support for BMP Route Monitoring and Peer Down Messages
TLV support for BMP Route Monitoring and Peer Down MessagesTLV support for BMP Route Monitoring and Peer Down Messages
TLV support for BMP Route Monitoring and Peer Down Messages
 
BMP Loc-RIB: Peer address
BMP Loc-RIB: Peer addressBMP Loc-RIB: Peer address
BMP Loc-RIB: Peer address
 
UDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured SubscriptionsUDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured Subscriptions
 
On-Path delay in Postcard-mode In Situ OAM
On-Path delay in Postcard-mode In Situ OAMOn-Path delay in Postcard-mode In Situ OAM
On-Path delay in Postcard-mode In Situ OAM
 
YANG Push Workflow
YANG Push WorkflowYANG Push Workflow
YANG Push Workflow
 

Recently uploaded

AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxellan12
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Deliverybabeytanya
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girladitipandeya
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Roomishabajaj13
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Delhi Call girls
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Roomdivyansh0kumar0
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 

Recently uploaded (20)

AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 

YANG push Integration into Apache Kafka

  • 1. YANG push Integration into Apache Kafka 1 Zhuoyao Lin IETF 118 - NETCONF
  • 2. TABLE OF CONTENT I. Introduction • Motivation • Overview II. Problems • Problems and proposed solution • Chosen solution III. Proposal • Augmenting the ietf- yang-library 2
  • 3. I. INTRODUCTION: Motivation Challenge of Network Management Networks are growing and being more and more complex to manage. A costly task for network operators is to identify and correct network issues. This involves three steps: • Detect that there is an issue, • Identify the cause of issue, • Correct the issue Today, it is often the customer that notifies the operator about an issue. Then the cause detection and correction of an issue is done by expert engineers. The challenge of the network management industry today, is to automate the detection, identification and correction of the problem, which is the frame we are trying to achieved. The project will be deployed into production at the end. 3
  • 4. I. INTRODUCTION: Motivation Network Analytics Nowadays Network Analytics requires to correlate metrics from various sources to make accurate detection/prediction. There are different sources and protocols to collect metrics. Here we focus on the YANG push protocol. The metrics are the foundation to network analytics. We must have reliable and meaningful data collection. Data Mesh The principle of Data Mesh is to present the data as a product. The quality of the data is guarantee by the team preparing the data. In our case, the collected data comes with the YANG model. 4 Missing Semantics In the TSDB, YANG model semantics might be lost. It is not clear how to interpret the data. An example: Temperature
  • 5. YANG push Receiver Apart from collecting YANG data, the receiver needs to be extended to register schema for YANG subscription. This is the goal of libyangpush. YANG Schema Registry 5 A solution to keep the semantics is to have a schema registry. Each message in Kafka contains a schema id pointing to the original YANG model. Schema will be used during serialization and deseralization. I. INTRODUCTION: Overview
  • 6. pmacct: A multi-purpose Network Monitoring tool(https://github.com/pmac ct/pmacct) Schema registry: Confluent pluggable schema registry has been extended to natively support YANG. YANG push: 1. Subscription to YANG Notifications for Datastore Updates - RFC 8641 2. draft-ietf-netconf-udp-notif- 11 It is partially being supported in the device I. INTRODUCTION: Overview and Current State
  • 7. TABLE OF CONTENT • Motivation • Overview II. Problems • Problems and proposed solution • Chosen solution III. Proposal • Augmenting the ietf- yang-library 7 II. Problems
  • 8. II. PROBLEMS 8 Problem 1: How to store YANG model in schema registry? Problem 2: How to know the subscribed model? (On the basis that the YANG push subscription is providing telemetry data) Problem 3: How to obtain the YANG model and its dependencies?
  • 9. II. PROBLEM 1: How to store YANG model in schema registry? 9 Simulate YANG data structure: Schema Content <-> YANG model code Schema Reference <-> YANG model dependency Functionality of schema registry: Validate YANG model and its dependencies relationship
  • 10. II. PROBLEM 2: How to know the subscribed model? 10 Solution 2: Use YANG to get subscription information: Subscribed YANG models can be known by parsing fields: datastore-xpath-filter or datastore-subtree-filter. The subscription is identified by a sub-id. This information is exposed as YANG model. It can be obtain: • As a subscription. Subscription will be synced through the first push-update, and updated through the push-change- update(new added, edit, remove etc.) • Via NETCONF <get> operation. Send a <get> to obtain the same information. Solution 1: Parse namespaces in the first YANG push message It is possible to find the reverse dependency in this way. <subscriptions> <subscription> <id>6666</id> <datastore>ds:operational</datastore> <datastore-xpath-filter> /a-module:a </datastore-xpath-filter> <encoding>encode-xml</encoding> <periodic> <period>30000</period> </periodic> </subscription> </subscriptions>
  • 11. II. PROBLEM 3: How to obtain the YANG model and its dependencies? 11 Solution 1: On-demand Downloading There are two possible implementation solutions, each with pros and cons The idea of on-demand downloading is to send get- schema request to get the YANG models based on the model name we obtain. For the main model in the subscription, we can obtain its name using method in “identify model”. Import and include can parsed from the YANG code. Deviate can be known by subscribing to /ietf-yang- library:modules-state. Pros: schema is update-to-date Cons: Cannot handle augment Solution 2: Get-all-schema The main idea of get-all-schemas is to get all models, store them in the disk, and analyse their full dependencies (import, include, deviate and augment) at the beginning of connection. Pros: Can handle all dependencies Cons: Downloading all schemas takes a lot of time
  • 12. 12 Algorithm for finding dependency Expend on DFS to traverse the YANG model dependency tree, for the main model: sequentially search for its import, include, augment and deviate. For its dependency model, we only search for their import and include. The model with the greatest depth will be put into register list first, then the top level module, in order to ensure that each register model has the dependency to refers to in the schema registry. A hash map is used throughout the traverse with the index being djb2 hash of the model name to make sure that the model will not be put into register list twice. The YANG source can be obtained via NETCONF <get-schema>. Now we need to obtain the full schema and dependencies. II. PROBLEM 3: How to obtain the YANG model and its dependencies?
  • 13. II. PROBLEMS: An example for the chosen solution 13 module: a-module +--rw a +--rw a-instance* [name] | +--rw name string | +--rw state? string +--rw d:y +--rw d:y-leaf? e:e-enum The schema for a-module require to register a-modules, e- module and d-module. a-module d-module augment e-module import Schema registration Order: a-module, reference{} e-module, reference{} d-module, reference{e-module, a-module} a-module, reference{d-module, e-module} <subscriptions> <subscription> <id>6666</id> <datastore>ds:operational</datastore> <datastore-xpath-filter> /a-module:a </datastore-xpath-filter> <encoding>encode-xml</encoding> <periodic> <period>30000</period> </periodic> </subscription> </subscriptions>
  • 14. TABLE OF CONTENT I. Introduction • Motivation • Overview III. Proposal • Augmenting the ietf- yang-library 14 II. Problems • Problems and proposed solution • Chosen solution
  • 15. III. Proposal: Augmenting YANG model ietf-yang-library 15 Problem 3: How to obtain the YANG model and its dependencies? Explanation: As for the current chosen solution, we cannot invalidate the model stored in disk when they have been updated in the device. As a way to get the most up-to-date reverse dependency model, the on-demand downloading only support checking for deviations currently. However, it is reasonable to augment to make the ietf-yang-library to also support storing the augmentations. In this way, we can get rid of having to use the get-all- schemas solution, while we can also handle the reverse dependencies easily.
  • 16. IV. Conclusion & Future Work 16 Demo is presented during IETF117 Hackathon: https://wiki.ietf.org/en/meeting/117/hackathon#net work-telemetry-yang-push-integration-into-apache- kafka Demonstrate the interaction with a working YANG schema registry during the demo Github repository for libyangpush: https://github.com/network-analytics/libyangpush.git Outcomes • Deploy the functionalities into Swisscom lab. Future Work • Integration with pmacct • Test with device as YANG push becomes better supported • Augment YANG model ietf-yang-library to support the record of augmentations(to support the on-demand downloading) Gaps to fill Industry Post: https://github.com/graf3net/draft-daisy-kafka-yang-integration/blob/main/draft-daisy-kafka- yang-integration-05.md https://www.linkedin.com/pulse/network-analytics-ietf-115-london-thomas-graf/ https://www.linkedin.com/pulse/network-analytics-ietf-116-yokohama-thomas-graf/ https://www.linkedin.com/pulse/network-analytics-ietf-117-san-francisco-thomas-graf/