SlideShare a Scribd company logo
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/
Ad

More Related Content

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
Yahoo!デベロッパーネットワーク
 
Netfilter: Making large iptables rulesets scale
Netfilter: Making large iptables rulesets scaleNetfilter: Making large iptables rulesets scale
Netfilter: Making large iptables rulesets scale
brouer
 
Caffe2
Caffe2Caffe2
Caffe2
Bang Tsui Liou
 
Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016
Satoshi 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 2016
DataStax
 
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 transformation
Nikolay 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 model
Cloudera 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 Cloud
Gá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 minutes
Loiane 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 Python
Ralf Gommers
 
Distributed Systems in Data Engineering
Distributed Systems in Data EngineeringDistributed Systems in Data Engineering
Distributed Systems in Data Engineering
Oluwasegun Matthew
 
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
 
Clean sw 3_architecture
Clean sw 3_architectureClean sw 3_architecture
Clean sw 3_architecture
AngelLuisBlasco
 
MINA2 (Apache Netty)
MINA2 (Apache Netty)MINA2 (Apache Netty)
MINA2 (Apache Netty)
ducquoc_vn
 
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
 
CCNA Routing and Switching Network Troubleshooting
CCNA Routing and Switching  Network  TroubleshootingCCNA Routing and Switching  Network  Troubleshooting
CCNA Routing and Switching Network Troubleshooting
illegalmanuals
 
CHAT APPLICATION THROUGH CLIENT SERVER MANAGEMENT SYSTEM PROJECT REPORT
CHAT APPLICATION THROUGH CLIENT SERVER MANAGEMENT SYSTEM PROJECT REPORTCHAT APPLICATION THROUGH CLIENT SERVER MANAGEMENT SYSTEM PROJECT REPORT
CHAT APPLICATION THROUGH CLIENT SERVER MANAGEMENT SYSTEM PROJECT REPORT
Kamal Acharya
 
Ns0 157(6)
Ns0 157(6)Ns0 157(6)
Ns0 157(6)
Carlos Garzón
 
Distributed Database practicals
Distributed Database practicals Distributed Database practicals
Distributed Database practicals
Vrushali Lanjewar
 
Netfilter: Making large iptables rulesets scale
Netfilter: Making large iptables rulesets scaleNetfilter: Making large iptables rulesets scale
Netfilter: Making large iptables rulesets scale
brouer
 
Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016Cassandra @ Yahoo Japan | Cassandra Summit 2016
Cassandra @ Yahoo Japan | Cassandra Summit 2016
Satoshi 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 2016
DataStax
 
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 transformation
Nikolay 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 model
Cloudera 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 Cloud
Gá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 minutes
Loiane 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 Python
Ralf Gommers
 
Distributed Systems in Data Engineering
Distributed Systems in Data EngineeringDistributed Systems in Data Engineering
Distributed Systems in Data Engineering
Oluwasegun Matthew
 
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
 
MINA2 (Apache Netty)
MINA2 (Apache Netty)MINA2 (Apache Netty)
MINA2 (Apache Netty)
ducquoc_vn
 
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
 
CCNA Routing and Switching Network Troubleshooting
CCNA Routing and Switching  Network  TroubleshootingCCNA Routing and Switching  Network  Troubleshooting
CCNA Routing and Switching Network Troubleshooting
illegalmanuals
 
CHAT APPLICATION THROUGH CLIENT SERVER MANAGEMENT SYSTEM PROJECT REPORT
CHAT APPLICATION THROUGH CLIENT SERVER MANAGEMENT SYSTEM PROJECT REPORTCHAT APPLICATION THROUGH CLIENT SERVER MANAGEMENT SYSTEM PROJECT REPORT
CHAT APPLICATION THROUGH CLIENT SERVER MANAGEMENT SYSTEM PROJECT REPORT
Kamal Acharya
 
Distributed Database practicals
Distributed Database practicals Distributed Database practicals
Distributed Database practicals
Vrushali Lanjewar
 

More from ThomasGraf42 (20)

BMP Peer Up Message Namespace
BMP Peer Up Message NamespaceBMP Peer Up Message Namespace
BMP Peer Up Message Namespace
ThomasGraf42
 
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
ThomasGraf42
 
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
ThomasGraf42
 
UDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured SubscriptionsUDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured Subscriptions
ThomasGraf42
 
Subscription to Distributed Notifications
Subscription to Distributed NotificationsSubscription to Distributed Notifications
Subscription to Distributed Notifications
ThomasGraf42
 
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
ThomasGraf42
 
YANG model for NETCONF Event Notifications
YANG model for NETCONF Event NotificationsYANG model for NETCONF Event Notifications
YANG model for NETCONF Event Notifications
ThomasGraf42
 
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
ThomasGraf42
 
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.pdf
ThomasGraf42
 
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
ThomasGraf42
 
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
ThomasGraf42
 
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 YANG Module
BMP YANG ModuleBMP YANG Module
BMP YANG Module
ThomasGraf42
 
BMP Extension for Path Status TLV
BMP Extension for Path Status TLVBMP Extension for Path Status TLV
BMP Extension for Path Status TLV
ThomasGraf42
 
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
ThomasGraf42
 
BMP Loc-RIB: Peer address
BMP Loc-RIB: Peer addressBMP Loc-RIB: Peer address
BMP Loc-RIB: Peer address
ThomasGraf42
 
UDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured SubscriptionsUDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured Subscriptions
ThomasGraf42
 
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
ThomasGraf42
 
YANG Push Workflow
YANG Push WorkflowYANG Push Workflow
YANG Push Workflow
ThomasGraf42
 
BMP Peer Up Message Namespace
BMP Peer Up Message NamespaceBMP Peer Up Message Namespace
BMP Peer Up Message Namespace
ThomasGraf42
 
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
ThomasGraf42
 
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
ThomasGraf42
 
UDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured SubscriptionsUDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured Subscriptions
ThomasGraf42
 
Subscription to Distributed Notifications
Subscription to Distributed NotificationsSubscription to Distributed Notifications
Subscription to Distributed Notifications
ThomasGraf42
 
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
ThomasGraf42
 
YANG model for NETCONF Event Notifications
YANG model for NETCONF Event NotificationsYANG model for NETCONF Event Notifications
YANG model for NETCONF Event Notifications
ThomasGraf42
 
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
ThomasGraf42
 
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.pdf
ThomasGraf42
 
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
ThomasGraf42
 
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
ThomasGraf42
 
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 TLV
ThomasGraf42
 
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
ThomasGraf42
 
BMP Loc-RIB: Peer address
BMP Loc-RIB: Peer addressBMP Loc-RIB: Peer address
BMP Loc-RIB: Peer address
ThomasGraf42
 
UDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured SubscriptionsUDP-based Transport for Configured Subscriptions
UDP-based Transport for Configured Subscriptions
ThomasGraf42
 
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
ThomasGraf42
 
YANG Push Workflow
YANG Push WorkflowYANG Push Workflow
YANG Push Workflow
ThomasGraf42
 
Ad

Recently uploaded (20)

data science data stoger Presentation1.pptx
data science data stoger Presentation1.pptxdata science data stoger Presentation1.pptx
data science data stoger Presentation1.pptx
sandeepsherkhane830
 
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingTop Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
steve198109
 
How to Switch Hosting Providers in Vancouver Without Any Downtime
How to Switch Hosting Providers in Vancouver Without Any DowntimeHow to Switch Hosting Providers in Vancouver Without Any Downtime
How to Switch Hosting Providers in Vancouver Without Any Downtime
steve198109
 
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation TemplateSmart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
yojeari421237
 
Virtualization Trends Streamlining Operations in Telecom with David Bernard ...
Virtualization Trends  Streamlining Operations in Telecom with David Bernard ...Virtualization Trends  Streamlining Operations in Telecom with David Bernard ...
Virtualization Trends Streamlining Operations in Telecom with David Bernard ...
David Bernard Ezell
 
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 SupportReliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
steve198109
 
highend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptxhighend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptx
elhadjcheikhdiop
 
White and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptxWhite and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptx
canumatown
 
Computers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers NetworksComputers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers Networks
Tito208863
 
Best web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you businessBest web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you business
steve198109
 
What's going on with IPv6? presented by Geoff Huston
What's going on with IPv6? presented by Geoff HustonWhat's going on with IPv6? presented by Geoff Huston
What's going on with IPv6? presented by Geoff Huston
APNIC
 
IT Services Workflow From Request to Resolution
IT Services Workflow From Request to ResolutionIT Services Workflow From Request to Resolution
IT Services Workflow From Request to Resolution
mzmziiskd
 
5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx
andani26
 
Understanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep WebUnderstanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep Web
nabilajabin35
 
Perguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolhaPerguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolha
socaslev
 
final project for icpna b08 if someone want.pptx
final project for icpna b08 if someone want.pptxfinal project for icpna b08 if someone want.pptx
final project for icpna b08 if someone want.pptx
ESTEFANOANDREYGARCIA
 
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC
 
Determining Glass is mechanical textile
Determining  Glass is mechanical textileDetermining  Glass is mechanical textile
Determining Glass is mechanical textile
Azizul Hakim
 
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
DataProvider1
 
(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security
aluacharya169
 
data science data stoger Presentation1.pptx
data science data stoger Presentation1.pptxdata science data stoger Presentation1.pptx
data science data stoger Presentation1.pptx
sandeepsherkhane830
 
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingTop Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
steve198109
 
How to Switch Hosting Providers in Vancouver Without Any Downtime
How to Switch Hosting Providers in Vancouver Without Any DowntimeHow to Switch Hosting Providers in Vancouver Without Any Downtime
How to Switch Hosting Providers in Vancouver Without Any Downtime
steve198109
 
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation TemplateSmart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
yojeari421237
 
Virtualization Trends Streamlining Operations in Telecom with David Bernard ...
Virtualization Trends  Streamlining Operations in Telecom with David Bernard ...Virtualization Trends  Streamlining Operations in Telecom with David Bernard ...
Virtualization Trends Streamlining Operations in Telecom with David Bernard ...
David Bernard Ezell
 
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 SupportReliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
steve198109
 
highend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptxhighend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptx
elhadjcheikhdiop
 
White and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptxWhite and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptx
canumatown
 
Computers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers NetworksComputers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers Networks
Tito208863
 
Best web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you businessBest web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you business
steve198109
 
What's going on with IPv6? presented by Geoff Huston
What's going on with IPv6? presented by Geoff HustonWhat's going on with IPv6? presented by Geoff Huston
What's going on with IPv6? presented by Geoff Huston
APNIC
 
IT Services Workflow From Request to Resolution
IT Services Workflow From Request to ResolutionIT Services Workflow From Request to Resolution
IT Services Workflow From Request to Resolution
mzmziiskd
 
5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx
andani26
 
Understanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep WebUnderstanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep Web
nabilajabin35
 
Perguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolhaPerguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolha
socaslev
 
final project for icpna b08 if someone want.pptx
final project for icpna b08 if someone want.pptxfinal project for icpna b08 if someone want.pptx
final project for icpna b08 if someone want.pptx
ESTEFANOANDREYGARCIA
 
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC
 
Determining Glass is mechanical textile
Determining  Glass is mechanical textileDetermining  Glass is mechanical textile
Determining Glass is mechanical textile
Azizul Hakim
 
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
DataProvider1
 
(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security
aluacharya169
 
Ad

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/