What is OpenFlow?
If we tried to explain what OpenFlow is, a possible definition would be: OpenFlow is a protocol for controlling and interacting with forwarding behaviors of switches. It allows us to dynamically control the behavior of the switches in our network. Many SDN (software defined network) and Open Source projects use OpenFlow or support it as a plugin, such as OpenStack Neutron and OpenDaylight.
But It’s hard to grasp what it is, what it solves and how it works only using this brief description. In order to truly understand what is OpenFlow, we need to start from the beginning, before SDN era.
Usually I don’t publish a post on every new project I create, but in this case I believe a lot of people can find it helpful in their learning process. So for the junior networking folks out there, or folks who just enjoy learning more about networking, you might want to take a look on the following page:
Basically, it’s a collection of networking videos and slides on a variety of computer networking subjects (sdn, ovs, neutron, openflow, general networking concepts, etc.).
In this post I’ll cover:
- Using the dnf module for querying for RPMs
- Exctract RPM details with re module
- Comparing RPM versions
The complete code is included at the end.
Query for RPMs
In this part I’ll show you how to use the DNF module in order to search for RPMs and extract information on them such as arch, version and name.
One of the most common questions I get asked by python beginners, is “how do you compare between objects of a class?”
To answer this question, let’s have a look on the following class:
def __init__(self, color, size):
self.color = color
self.size = size
This part covers:
- Main Components (ovsdb-server, ovs-vswitchd, ovs kernel module)
- Utilities (ovs-vsctl, ovs-ofctl, ovs-appctl, etc)
- Modes (normal & flow)
Part 1 is here.
Open vSwitch Components
The following diagram shows Open vSwitch main components and in which space (kernel, user or remote server) each component is located