SlideShare a Scribd company logo
1 of 54
Download to read offline
rtnetlink@takufukushima
@takufukushima
• I just worked on rtnetlink library for
Java/Scala and its application
• I’m not a kernel expert :-p
Agenda
1. What is Netlink and rtnetlink
2. MidoNet and Netlink
3. Enter rtnetlink
4. Wrap-up
1. What is Netlink and
rtnetlink?
Netlink as an IPC
• Netlink is an intra-kernel messaging system
• Netlink is an IPC between the Linux kernel
and the userspace that has:
• Socket interface (AF_NETLINK family with
various protocols)
• Broadcast messages (notifications) from the
kernel triggered by other processes
History of Netlink
• It was introduced in Linux 2.2, 1999, by
Alexey Kuznetsov in INR RAS as a successor
of ioctl for the networking interfaces
• In 1995, Linux 1.3 had /dev/netlink
(Skiplink; obsolete) by Alan Cox
• Generic Netlink was supported in 2.6.15,
2006
Netlink use cases
• iproute2, a.k.a. ip command
• by Alexey Kuznetsov and Stephen Hemminger
• Open vSwitch (OVS)
• e.g., the communication between the
datapath in the kernel and ova-
vswitchd in the userspace
Netlink protocols
OVS datapath
• Link
• Address
• Route
• Neighbor
• Rule
• QDisc
• Traffic Class
• Traffic Filter
• …
iproute2 (a.k.a. ip)
Netlink multiplexer
include/uapi/linux/netlink.h
rtnetlink
Netlink documentations
• man 7 netlink	
• Netlink Protocol Library Suite (libnl)
• http://www.carisma.slowglass.com/~tgr/libnl/
• RFC 3549
• https://tools.ietf.org/html/rfc3549
• Linux kernel and iproute2 source code
Netlink documentations
Linux source code
• Use cscope, global or your preferred tag system
• net/netlink/*.[ch]	
• include/linux/{genetlink, netlink,
rtnetlink}.h	
• include/net/{genetlink, netlink,
rtnetlink}.h	
• include/uapi/linux/*.h
iproute2 source code
• Use cscope, global or your preferred tag
system
• ip/*.[ch]	
• ip/include/linux/*.h	
• e.g., ip/include/linux/ip_link*.h for
links	
• lib/libnetlink.c
Debugging Netlink
• nltrace
• https://github.com/socketpair/nltrace
• nlmon & (tcpdump | netsniff-ng)
Debugging w/ nltrace
Debugging w/ nlmon
Notes on Netlink
• Netlink data should be transferred in
the native endian
• Little endian on the little endian system
• Big endian on the big endian system
• You need to subscribe some groups to
get the notifications from the kernel
2. MidoNet and
Netlink
MidoNet 101
Open vSwitch datapath
in_port=1, action= ...
in_port=2, action= ...
.
.
.
in_port=29, action= ...
FlowTable
MidoNet
Agent
3. Packet execute
Flow
Matched Packets
Unmatched Packets
1. Upcall 2. Set Flow Table Entry
Userspace
Kernel
Host
NSDB NSDB
NSDB
Private
Network
Host
Midol
man
Cache
Datapath
VM VM VM
Flow Table
Nova compute
MidoNet APINova
API
Horizon MidoNet CLI
Neutron API
MidoNet Plugin
Clients / Users
Host
Midol
man
Cache
Datapath
VM VM VM
Flow Table
Nova compute
BGP Gateway
Midol
man
Datapath
Flow Table
BGP Gateway
Midol
man
Datapath
Flow Table
GRE/VXLAN Tunneling
Internet
Midolman (MidoNet agent)
NSDB NSDB
NSDB
Open vSwitch Datapath
IF IF
Interfaces on the host
IF
VM VM VM Midolman
(MidoNet
agent)
Network
Flow Table
Watch/modify
Add/remove flows
Host
Cache
+
local state
Store virtual
topology
information
Nova compute
Open vSwitch Datapath
IF IF
e host
IF
VM VM VM Midolman
(MidoNet
agent)
Flow Table
Watch/modify
Add/remove flows
Host
Cache
+
local state
Nova compute
Open vSwitch Datapath
IF IF
e host
IF
VM VM VM Midolman
(MidoNet
agent)
Flow Table
Watch/modify
Add/remove flows
Host
Cache
+
local state
Nova compute
Open vSwitch Datapath
IF IF
e host
IF
VM VM VM Midolman
(MidoNet
agent)
Flow Table
Watch/modify
Add/remove flows
Host
Cache
+
local state
Nova compute
Netlink
MidoNet speaks Netlink
• MidoNet agent drives OVS datapath
kernel module
• MidoNet agent communicates with
the kernel through Netlink
• e.g., upcalls and flow installations/
invalidations
Upcall Lifecycle
1. Input stage
• Get upcalls with packets from the datapath
2. Packet processing stage
1. Deduplicate and queue packets
2. Simulate packets on the virtual topology
3. Deal with the wildcard flows
4. Determine the egress physical port
3. Output stage
• Emit packets and install flows based on the sims
Netlink
Module diagrams
F
PacketsEntryPoint
NetlinkCallback
Dispatcher
DeduplicationActor
PacketWorkflow
UpcallDatapath
ConnectionManager
One-to-Man
One-to-On
HTB
Supended
Packets
Waiting
Room
(NetlinkInputChannel)
NetlinkChannel
Fast Path
State Management
Open vSwitch Datapath
Flow Table
UpcallPacket
1. Input stage
Select Loop
Datapath
Controller
Flow Controller
PacketsEntryPoint
NetlinkCallback
Dispatcher
DeduplicationActor
PacketWorkflow
UpcallDatapath
ConnectionManager
One-to-Many
One-to-One
HTB
Supended
Packets
Waiting
Room
(NetlinkInputChannel)
NetlinkChannel
(NetlinkOutputChannel)
DatapathChannel
ment
path Open
WildcardFlow
Pa
Wildcard Flows
Flow
Managem
2. Packet processing stage
PacketContext
PacketContextPacketContext
PacketContext
PacketContext
PacketContext
Routing by hashing with FlowKey
Datapath
Controller
Flow Controller
PacketsEntryPoint
VirtualTo
PhysicalMapper
DeduplicationActor
PacketWorkflow
Disruptor
Ring Buffer
Supended
Packets
Waiting
Room
el) (NetlinkOutputChannel)
DatapathChannel
Flow Table
DatapathReady
WildcardFlow
validation
y Tag
Virtual Topology
State data / Messages
Packet
Flow
Wildcard Flows
DatapathReady
Datapath port
operations
Flow
Management
2. Packet processing stage
Local datapath management
• Create local datapath ports
• Track UUID to port # mapping
• Manage overlay tunnels
PacketContext
Datapath
Controller
Flow Controller
PacketsEntryPoint
VirtualTo
PhysicalMapper
DeduplicationActor
PacketWorkflow
Disruptor
Ring Buffer
Supended
Packets
Waiting
Room
(NetlinkOutputChannel)
DatapathChannel
Flow Table
DatapathReady
WildcardFlow
n
Virtual Topology
State data / Messages
Packet
Flow
Wildcard Flows
DatapathReady
Datapath port
operations
Flow
Management
2. Packet processing stage
Flow
Flow
Flow
Flow
Query statistics
Invalidate flows
PacketContext
Flow management
• Cache flows
• Invalidate flows when the
virtual topology changed
• Add flow to the datapath
Datapath
Controller
Flow Controller
PacketsEntryPoint
NetlinkCallback
Dispatcher
DeduplicationActor
PacketWorkflow
One-to-Many
One-to-One
B
Disruptor
Ring Buffer
Supended
Packets
Waiting
Room
(NetlinkOutputChannel)
DatapathChannel
Open vSwitch Datapath
Flow Table
WildcardFlow
Virtual Topology
State data / Messages
Packet
Flow
Wildcard Flows
Datapath port
operations
Flow
Management
3. Output stage
Select Loop
Netlink/rtnetlink in MidoNet
• odp library to communicate with OVS
datapath
• Hard-coded ip command
• InterfaceScanner scans
interface information on the host
• e.g., interface type, MTU, …
3. Enter rtnetlink
3. Enter rtnetlink
Kill InterfaceScanner
Retrived from “The Terminator”. © Hemdale Film Corporation and Orion Pictures
InterfaceScanner
• Scans interface information on the
host periodically
• Exposes the subscription interface
• e.g., Notify the current status of all
interfaces to other components
New InterfaceScanner
• Gets the notifications from the kernel
through rtnetlink for the updates
• Exposes the subscription interface
• e.g., Notify the current status of all
interfaces to other components
Notifications?
Events?
Async ops?
Sounds familiar…
Do you know what ip a does?
1. Retrieve link information
2. Retrieve address information
3. Combine them into the single
representation format
4. Display the result
Link
Addr
Do you know what ip a does?
1. Retrieve link information
2. Retrieve address information
3. Combine them into the single
representation format
4. Display the result
Blocking operation from the!
perspective of Midolman
Now everything is
asynchronous.
How can we
coordinate them?
InterfaceScanner and
RtnetlinkConnection
4. Wrap-up
Good bye, old
InterfaceScanner
Retrieved from “Terminator 2: Judgment Day”. © Carolco Pictures, Lightstorm Entertainment, Le Studio Canal+, and TriStar Pictures
rtnelink library
• Retrieve/create rtnetlink resources
• Observer or Subject consumes retrieved
data
• Coordinate async operations with RxJava
• map ByteBuffer to rtnetlink resource
• filter some resources
• zip few different resources
New InterfaceScanner
• Get the notifications from the kernel
• Update the single representation
format
• Let Observers consume the data
Acknowledgements
• The following people helped me a lot
• Takayuki Usui, Guillermo Ontañón,
Duarte Nunes and Ivan Kelly
• Special thanks to Antoni Segura
Puimedon and Hugo Benichi
(Non-academic) References
• The Netlink protocol: Mysteries Uncovered , Jan
Engelhardt, 2010
• http://inai.de/documents/Netlink_Protocol.pdf
• Understanding And Programming With Netlink Sockets,
Neil Horman, 2004
• http://people.redhat.com/nhorman/papers/netlink.pdf
• Netlink - Wikipedia, the free encyclopaedia
• http://en.wikipedia.org/wiki/Netlink
This is the end of slides.
Any questions?

More Related Content

What's hot

What's hot (20)

Zabbix Performance Tuning
Zabbix Performance TuningZabbix Performance Tuning
Zabbix Performance Tuning
 
Red Hat OpenStack 17 저자직강+스터디그룹_2주차
Red Hat OpenStack 17 저자직강+스터디그룹_2주차Red Hat OpenStack 17 저자직강+스터디그룹_2주차
Red Hat OpenStack 17 저자직강+스터디그룹_2주차
 
RNUG - Dirty Secrets of the Notes Client
RNUG - Dirty Secrets of the Notes ClientRNUG - Dirty Secrets of the Notes Client
RNUG - Dirty Secrets of the Notes Client
 
An introduction to configuring Domino for Docker
An introduction to configuring Domino for DockerAn introduction to configuring Domino for Docker
An introduction to configuring Domino for Docker
 
Docker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined NetworksDocker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined Networks
 
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催) ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
 
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
 
[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020
 
Kubernetes #4 volume & stateful set
Kubernetes #4   volume & stateful setKubernetes #4   volume & stateful set
Kubernetes #4 volume & stateful set
 
Docker infiniband
Docker infinibandDocker infiniband
Docker infiniband
 
Simplifying Your IT Workflow with Katello and Foreman
Simplifying Your IT Workflow with Katello and ForemanSimplifying Your IT Workflow with Katello and Foreman
Simplifying Your IT Workflow with Katello and Foreman
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 
Beginner for install DOSBox-X and PC-98 emulation. 初めてのDOSBox-XインストールとPC-98エ...
Beginner for install DOSBox-X and PC-98 emulation.  初めてのDOSBox-XインストールとPC-98エ...Beginner for install DOSBox-X and PC-98 emulation.  初めてのDOSBox-XインストールとPC-98エ...
Beginner for install DOSBox-X and PC-98 emulation. 初めてのDOSBox-XインストールとPC-98エ...
 
Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021
Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021
Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021
 
Janus & docker: friends or foe
Janus & docker: friends or foe Janus & docker: friends or foe
Janus & docker: friends or foe
 
System Device Tree and Lopper: Concrete Examples - ELC NA 2022
System Device Tree and Lopper: Concrete Examples - ELC NA 2022System Device Tree and Lopper: Concrete Examples - ELC NA 2022
System Device Tree and Lopper: Concrete Examples - ELC NA 2022
 
Introduction to eBPF
Introduction to eBPFIntroduction to eBPF
Introduction to eBPF
 
Ceph Tech Talk: Ceph at DigitalOcean
Ceph Tech Talk: Ceph at DigitalOceanCeph Tech Talk: Ceph at DigitalOcean
Ceph Tech Talk: Ceph at DigitalOcean
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast Storage
 
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdfNEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdf
 

Viewers also liked

Interface between kernel and user space
Interface between kernel and user spaceInterface between kernel and user space
Interface between kernel and user space
Susant Sahani
 
Code Signing with CPK
Code Signing with CPKCode Signing with CPK
Code Signing with CPK
Zhi Guan
 
Openstack meetup-pune-aug22-overview
Openstack meetup-pune-aug22-overviewOpenstack meetup-pune-aug22-overview
Openstack meetup-pune-aug22-overview
rajdeep
 

Viewers also liked (20)

Container Orchestration Integration: OpenStack Kuryr
Container Orchestration Integration: OpenStack KuryrContainer Orchestration Integration: OpenStack Kuryr
Container Orchestration Integration: OpenStack Kuryr
 
Use bonding driver with ethernet
Use bonding driver with ethernetUse bonding driver with ethernet
Use bonding driver with ethernet
 
Interface between kernel and user space
Interface between kernel and user spaceInterface between kernel and user space
Interface between kernel and user space
 
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)
 
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
OpenStack Israel Meetup - Project Kuryr: Bringing Container Networking to Neu...
 
Cloud Foundry Open Tour India 2012 , Keynote
Cloud Foundry Open Tour India 2012 , KeynoteCloud Foundry Open Tour India 2012 , Keynote
Cloud Foundry Open Tour India 2012 , Keynote
 
Introduction to MidoNet
Introduction to MidoNetIntroduction to MidoNet
Introduction to MidoNet
 
MidoNet deep dive
MidoNet deep diveMidoNet deep dive
MidoNet deep dive
 
Code Signing with CPK
Code Signing with CPKCode Signing with CPK
Code Signing with CPK
 
Openstack meetup-pune-aug22-overview
Openstack meetup-pune-aug22-overviewOpenstack meetup-pune-aug22-overview
Openstack meetup-pune-aug22-overview
 
RubyKaigi2014レポート
RubyKaigi2014レポートRubyKaigi2014レポート
RubyKaigi2014レポート
 
Gunosy.go #4 go
Gunosy.go #4 goGunosy.go #4 go
Gunosy.go #4 go
 
Cloudfoundry Overview
Cloudfoundry OverviewCloudfoundry Overview
Cloudfoundry Overview
 
Om
OmOm
Om
 
Openstack Overview
Openstack OverviewOpenstack Overview
Openstack Overview
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network Interfaces
 
VMware Hybrid Cloud Service - Overview
VMware Hybrid Cloud Service - OverviewVMware Hybrid Cloud Service - Overview
VMware Hybrid Cloud Service - Overview
 
Play Support in Cloud Foundry
Play Support in Cloud FoundryPlay Support in Cloud Foundry
Play Support in Cloud Foundry
 
Docker 1.5
Docker 1.5Docker 1.5
Docker 1.5
 
Managing Activity Backstack
Managing Activity BackstackManaging Activity Backstack
Managing Activity Backstack
 

Similar to rtnetlink

How VXLAN works on Linux
How VXLAN works on LinuxHow VXLAN works on Linux
How VXLAN works on Linux
Etsuji Nakai
 

Similar to rtnetlink (20)

neutron_icehouse_update
neutron_icehouse_updateneutron_icehouse_update
neutron_icehouse_update
 
Openstack Networking Internals - first part
Openstack Networking Internals - first partOpenstack Networking Internals - first part
Openstack Networking Internals - first part
 
LinuxCon 2015 Stateful NAT with OVS
LinuxCon 2015 Stateful NAT with OVSLinuxCon 2015 Stateful NAT with OVS
LinuxCon 2015 Stateful NAT with OVS
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
 
Virtual Networking (1) (1).pptx
Virtual Networking (1) (1).pptxVirtual Networking (1) (1).pptx
Virtual Networking (1) (1).pptx
 
How VXLAN works on Linux
How VXLAN works on LinuxHow VXLAN works on Linux
How VXLAN works on Linux
 
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
 
Technical Deep Dive into MidoNet - Taku Fukushima, Developer at Midokura
Technical Deep Dive into MidoNet - Taku Fukushima, Developer at MidokuraTechnical Deep Dive into MidoNet - Taku Fukushima, Developer at Midokura
Technical Deep Dive into MidoNet - Taku Fukushima, Developer at Midokura
 
Networking in Openstack - Neutron 101
Networking in Openstack - Neutron 101Networking in Openstack - Neutron 101
Networking in Openstack - Neutron 101
 
2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services
 
An Introduce of OPNFV (Open Platform for NFV)
An Introduce of OPNFV (Open Platform for NFV)An Introduce of OPNFV (Open Platform for NFV)
An Introduce of OPNFV (Open Platform for NFV)
 
Docker summit : Docker Networking Control-plane & Data-Plane
Docker summit : Docker Networking Control-plane & Data-PlaneDocker summit : Docker Networking Control-plane & Data-Plane
Docker summit : Docker Networking Control-plane & Data-Plane
 
Docker Networking: Control plane and Data plane
Docker Networking: Control plane and Data planeDocker Networking: Control plane and Data plane
Docker Networking: Control plane and Data plane
 
Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1
 
Snabbflow: A Scalable IPFIX exporter
Snabbflow: A Scalable IPFIX exporterSnabbflow: A Scalable IPFIX exporter
Snabbflow: A Scalable IPFIX exporter
 
Analise NetFlow in Real Time
Analise NetFlow in Real TimeAnalise NetFlow in Real Time
Analise NetFlow in Real Time
 
Ovn vancouver
Ovn vancouverOvn vancouver
Ovn vancouver
 
Open stack with_openflowsdn-torii
Open stack with_openflowsdn-toriiOpen stack with_openflowsdn-torii
Open stack with_openflowsdn-torii
 
OpenStack networking (Neutron)
OpenStack networking (Neutron) OpenStack networking (Neutron)
OpenStack networking (Neutron)
 
10 sdn-vir-6up
10 sdn-vir-6up10 sdn-vir-6up
10 sdn-vir-6up
 

Recently uploaded

Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 

rtnetlink