Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: OpenStack: Dev

[ANNOUNCE] Ryu OSS Network Operating System

 

 

OpenStack dev RSS feed   Index | Next | Previous | View Threaded


fujita.tomonori at lab

Dec 9, 2011, 2:52 AM

Post #1 of 6 (2 views)
Permalink
[ANNOUNCE] Ryu OSS Network Operating System

Hi all,

We are glad to announce the Ryu open-sourced Network Operating System.
Ryu is released under GPL v3 license. It's fully written in Python.

http://www.osrg.net/ryu/

The project goal is to develop an OSS Network Operating System that
has high quality enough for use in large production environment in
code quality/functionality/usability.

Ryu aims to provide a logically centralized control and well defined
API that make it easy for operators to create new network management
and control applications. Currently, Ryu supports OpenFlow protocol to
modify the behavior of network devices.

We aim at the de facto OSS NOS implementation and NOS API.

Currently, Ryu is shipped with one control application for OpenStack
network management L2 segregation of tenants without using VLAN. The
application includes the changes to OpenStack (nova, quantum ovs
plugin, etc).

We are still in an early stage of development. Currently, Ryu is just
an OpenFlow Controller. There are lots of TODO items: OpenFlow
Protocol version 1.2 support (timely manner), the better API for
control applications, distributed store support, etc. Please join the
development community!

Get source code:

% git clone git://github.com/osrg/ryu.git

Then just type:

% cd ryu; python ./setup.py install

and run ryu-manager command which is installed. Then set up your
OpenFlow switch (hardware switch or OVS) to connect the ip address and
port to which ryu-manager is listening.


=
NTT Cyber Space Laboratories
Open Source Software Computing Project

FUJITA Tomonori


dan at nicira

Dec 9, 2011, 4:31 AM

Post #2 of 6 (2 views)
Permalink
Re: [ANNOUNCE] Ryu OSS Network Operating System [In reply to]

Hi, this is a neat project, thanks for sending it out.

I'm really happy to see that you've already performed the Quantum
integration by extending the Open vSwitch plugin. This work is a great
example of how Quantum can be used to plug in a variety of different
back-end networking technologies.

Going through the docs, everything make sense. Hopefully you can help
contribute some of those graphics to the main Quantum documentation as
well, as that's an area where our current docs are sorely lacking :)

We can definitely help you get your extensions to the Quantum code into
trunk, probably during the essex-3 timeframe (the essex-2 release is
currently less than a week away, and is already locked down). I would
suggest creating a blueprint for this on http://launchpad.net/quantum . If
you have detailed questions about Quantum, you can send them to
netstack [at] lists .

It also looks like you have some small nova changes, mostly around the
QuantumManager + OVS vif-plugging. I think some of them may not
be necessary after some work done by brad in essex-2 around integrating
QuantumManager with L3 + NAT (recently merged into trunk), but we can help
figure that out as well.

Dan


On Fri, Dec 9, 2011 at 1:52 AM, FUJITA Tomonori <
fujita.tomonori [at] lab> wrote:

> Hi all,
>
> We are glad to announce the Ryu open-sourced Network Operating System.
> Ryu is released under GPL v3 license. It's fully written in Python.
>
> http://www.osrg.net/ryu/
>
> The project goal is to develop an OSS Network Operating System that
> has high quality enough for use in large production environment in
> code quality/functionality/usability.
>
> Ryu aims to provide a logically centralized control and well defined
> API that make it easy for operators to create new network management
> and control applications. Currently, Ryu supports OpenFlow protocol to
> modify the behavior of network devices.
>
> We aim at the de facto OSS NOS implementation and NOS API.
>
> Currently, Ryu is shipped with one control application for OpenStack
> network management L2 segregation of tenants without using VLAN. The
> application includes the changes to OpenStack (nova, quantum ovs
> plugin, etc).
>
> We are still in an early stage of development. Currently, Ryu is just
> an OpenFlow Controller. There are lots of TODO items: OpenFlow
> Protocol version 1.2 support (timely manner), the better API for
> control applications, distributed store support, etc. Please join the
> development community!
>
> Get source code:
>
> % git clone git://github.com/osrg/ryu.git
>
> Then just type:
>
> % cd ryu; python ./setup.py install
>
> and run ryu-manager command which is installed. Then set up your
> OpenFlow switch (hardware switch or OVS) to connect the ip address and
> port to which ryu-manager is listening.
>
>
> =
> NTT Cyber Space Laboratories
> Open Source Software Computing Project
>
> FUJITA Tomonori
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack [at] lists
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp
>



--
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dan Wendlandt
Nicira Networks: www.nicira.com
twitter: danwendlandt
~~~~~~~~~~~~~~~~~~~~~~~~~~~


yamahata at valinux

Dec 9, 2011, 6:22 AM

Post #3 of 6 (2 views)
Permalink
Re: [ANNOUNCE] Ryu OSS Network Operating System [In reply to]

On Fri, Dec 09, 2011 at 03:31:22AM -0800, Dan Wendlandt wrote:
> Hi, this is a neat project, thanks for sending it out.

Hi.


> I'm really happy to see that you've already performed the Quantum integration
> by extending the Open vSwitch plugin. This work is a great example of how
> Quantum can be used to plug in a variety of different back-end networking
> technologies.
>
> Going through the docs, everything make sense. Hopefully you can help
> contribute some of those graphics to the main Quantum documentation as well, as
> that's an area where our current docs are sorely lacking :)
>
> We can definitely help you get your extensions to the Quantum code into trunk,
> probably during the essex-3 timeframe (the essex-2 release is currently less
> than a week away, and is already locked down). I would suggest creating a
> blueprint for this on http://launchpad.net/quantum . If you have detailed
> questions about Quantum, you can send them to netstack [at] lists .
Okay, I'll create a blue print. Though, can we discuss on its design
beforehand?

- introduce OVS driver/OVS agent driver
I think, there can be several kind of openflow controllers, so this is
reasonable.
The code refactoring and new options would be easily merged, I hope.

- window between port creation and port becoming usable.
Currently, there is a window that VM can't connect to the network.

1. ovs port creation by nova-compute virt-driver
2. nova-compute call nova-network which calls quantum rest API
3. instance creation and guest VM starts.
the VM can't send/receive until OVS agent finds the port.
4. ovs agent polls on compute node, and make the port available.

I'd like to fix the window. nova-network doesn't have informations enough.
So the possible options is
- have nova-compute call quantum API, or
- have nova-compute pass more information (maybe libvirt_vif_driver
specific) as rpc argument to nova-network
Maybe the first option would make the code simple, but it breaks the
boundary between compute and netowrk. So my preference is the second option.
Or any other ideas?


> It also looks like you have some small nova changes, mostly around the
> QuantumManager + OVS vif-plugging. I think some of them may not be necessary
> after some work done by brad in essex-2 around integrating QuantumManager with
> L3 + NAT (recently merged into trunk), but we can help figure that out as well.

The new firewall driver and network interface driver we introduced are
for demonstration making the point clear.
Nop firewall driver is introduced in order to show that the packet filtering
is done by Ryu, not by iptables.
If iptables firewall driver is enabled, it doesn't harm, it's just bypassed.

thanks,


>
>
> Dan
>
>
> On Fri, Dec 9, 2011 at 1:52 AM, FUJITA Tomonori <fujita.tomonori [at] lab>
> wrote:
>
> Hi all,
>
> We are glad to announce the Ryu open-sourced Network Operating System.
> Ryu is released under GPL v3 license. It's fully written in Python.
>
> http://www.osrg.net/ryu/
>
> The project goal is to develop an OSS Network Operating System that
> has high quality enough for use in large production environment in
> code quality/functionality/usability.
>
> Ryu aims to provide a logically centralized control and well defined
> API that make it easy for operators to create new network management
> and control applications. Currently, Ryu supports OpenFlow protocol to
> modify the behavior of network devices.
>
> We aim at the de facto OSS NOS implementation and NOS API.
>
> Currently, Ryu is shipped with one control application for OpenStack
> network management L2 segregation of tenants without using VLAN. The
> application includes the changes to OpenStack (nova, quantum ovs
> plugin, etc).
>
> We are still in an early stage of development. Currently, Ryu is just
> an OpenFlow Controller. There are lots of TODO items: OpenFlow
> Protocol version 1.2 support (timely manner), the better API for
> control applications, distributed store support, etc. Please join the
> development community!
>
> Get source code:
>
> % git clone git://github.com/osrg/ryu.git
>
> Then just type:
>
> % cd ryu; python ./setup.py install
>
> and run ryu-manager command which is installed. Then set up your
> OpenFlow switch (hardware switch or OVS) to connect the ip address and
> port to which ryu-manager is listening.
>
>
> =
> NTT Cyber Space Laboratories
> Open Source Software Computing Project
>
> FUJITA Tomonori
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack [at] lists
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp
>
>
>
>
> --
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Dan Wendlandt
> Nicira Networks: www.nicira.com
> twitter: danwendlandt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>

> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack [at] lists
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp


--
yamahata


dan at nicira

Dec 9, 2011, 10:02 AM

Post #4 of 6 (2 views)
Permalink
Re: [ANNOUNCE] Ryu OSS Network Operating System [In reply to]

On Fri, Dec 9, 2011 at 5:22 AM, Isaku Yamahata <yamahata [at] valinux>wrote:

> On Fri, Dec 09, 2011 at 03:31:22AM -0800, Dan Wendlandt wrote:
> > Hi, this is a neat project, thanks for sending it out.
>
> Hi.
>
>
> > I'm really happy to see that you've already performed the Quantum
> integration
> > by extending the Open vSwitch plugin. This work is a great example of
> how
> > Quantum can be used to plug in a variety of different back-end networking
> > technologies.
> >
> > Going through the docs, everything make sense. Hopefully you can help
> > contribute some of those graphics to the main Quantum documentation as
> well, as
> > that's an area where our current docs are sorely lacking :)
> >
> > We can definitely help you get your extensions to the Quantum code into
> trunk,
> > probably during the essex-3 timeframe (the essex-2 release is currently
> less
> > than a week away, and is already locked down). I would suggest
> creating a
> > blueprint for this on http://launchpad.net/quantum . If you have
> detailed
> > questions about Quantum, you can send them to
> netstack [at] lists .
> Okay, I'll create a blue print. Though, can we discuss on its design
> beforehand?
>

Hi Yamahata,

Oh, definitely. I really should have set "create a blueprint and target it
as essex-3 as a place-holder". We'll definitely need to talk through the
design first (though we probably don't need to flood the entire OS
community with such detailed discussions, so we can move it to the netstack
list).


>
> - introduce OVS driver/OVS agent driver
> I think, there can be several kind of openflow controllers, so this is
> reasonable.
> The code refactoring and new options would be easily merged, I hope.
>

I haven't looked at the entire patch yet, but yes, we'll have to figure out
how to handle different capabilities in the agent. I know of others doing
similar things, so coming up with a pattern for this will be valuable.


>
> - window between port creation and port becoming usable.
> Currently, there is a window that VM can't connect to the network.
>
> 1. ovs port creation by nova-compute virt-driver
> 2. nova-compute call nova-network which calls quantum rest API
> 3. instance creation and guest VM starts.
> the VM can't send/receive until OVS agent finds the port.
> 4. ovs agent polls on compute node, and make the port available.


> I'd like to fix the window. nova-network doesn't have informations enough.
> So the possible options is
> - have nova-compute call quantum API, or
> - have nova-compute pass more information (maybe libvirt_vif_driver
> specific) as rpc argument to nova-network
> Maybe the first option would make the code simple, but it breaks the
> boundary between compute and netowrk. So my preference is the second
> option.
> Or any other ideas?
>


I think the order above is incorrect. If you look in
nova/compute/manager.py's _run_instance() method, the allocate_network()
call is called before _spawn(), which IIRC means that Quantum will be
called and the port created + attached before the VM port is created on OVS
or the VM is started. So I don't think there's a fundamental ordering
problem. It may just be that the polling period in the OVS agent needs to
be tuned down. I've been thinking about splitting the logic that spots a
port and putting it in a separate thread with a shorter polling interval,
which may help. Or it may be a bug that you're seeing :)


>
>
> > It also looks like you have some small nova changes, mostly around the
> > QuantumManager + OVS vif-plugging. I think some of them may not be
> necessary
> > after some work done by brad in essex-2 around integrating
> QuantumManager with
> > L3 + NAT (recently merged into trunk), but we can help figure that out
> as well.
>
> The new firewall driver and network interface driver we introduced are
> for demonstration making the point clear.
> Nop firewall driver is introduced in order to show that the packet
> filtering
> is done by Ryu, not by iptables.
> If iptables firewall driver is enabled, it doesn't harm, it's just
> bypassed.
>

Yeah, that made sense. I was more talking about some of the tweaks you did
to enable metadata + and general L3 forwarding in QuantumManager. Brad had
a blueprint on that part fo the code that went in a week or so ago.

Dan



>
> thanks,
>
>
> >
> >
> > Dan
> >
> >
> > On Fri, Dec 9, 2011 at 1:52 AM, FUJITA Tomonori <
> fujita.tomonori [at] lab>
> > wrote:
> >
> > Hi all,
> >
> > We are glad to announce the Ryu open-sourced Network Operating
> System.
> > Ryu is released under GPL v3 license. It's fully written in Python.
> >
> > http://www.osrg.net/ryu/
> >
> > The project goal is to develop an OSS Network Operating System that
> > has high quality enough for use in large production environment in
> > code quality/functionality/usability.
> >
> > Ryu aims to provide a logically centralized control and well defined
> > API that make it easy for operators to create new network management
> > and control applications. Currently, Ryu supports OpenFlow protocol
> to
> > modify the behavior of network devices.
> >
> > We aim at the de facto OSS NOS implementation and NOS API.
> >
> > Currently, Ryu is shipped with one control application for OpenStack
> > network management L2 segregation of tenants without using VLAN. The
> > application includes the changes to OpenStack (nova, quantum ovs
> > plugin, etc).
> >
> > We are still in an early stage of development. Currently, Ryu is just
> > an OpenFlow Controller. There are lots of TODO items: OpenFlow
> > Protocol version 1.2 support (timely manner), the better API for
> > control applications, distributed store support, etc. Please join the
> > development community!
> >
> > Get source code:
> >
> > % git clone git://github.com/osrg/ryu.git
> >
> > Then just type:
> >
> > % cd ryu; python ./setup.py install
> >
> > and run ryu-manager command which is installed. Then set up your
> > OpenFlow switch (hardware switch or OVS) to connect the ip address
> and
> > port to which ryu-manager is listening.
> >
> >
> > =
> > NTT Cyber Space Laboratories
> > Open Source Software Computing Project
> >
> > FUJITA Tomonori
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~openstack
> > Post to : openstack [at] lists
> > Unsubscribe : https://launchpad.net/~openstack
> > More help : https://help.launchpad.net/ListHelp
> >
> >
> >
> >
> > --
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > Dan Wendlandt
> > Nicira Networks: www.nicira.com
> > twitter: danwendlandt
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >
>
> > _______________________________________________
> > Mailing list: https://launchpad.net/~openstack
> > Post to : openstack [at] lists
> > Unsubscribe : https://launchpad.net/~openstack
> > More help : https://help.launchpad.net/ListHelp
>
>
> --
> yamahata
>



--
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dan Wendlandt
Nicira Networks: www.nicira.com
twitter: danwendlandt
~~~~~~~~~~~~~~~~~~~~~~~~~~~


yamahata at valinux

Dec 9, 2011, 6:13 PM

Post #5 of 6 (2 views)
Permalink
Re: [ANNOUNCE] Ryu OSS Network Operating System [In reply to]

On Fri, Dec 09, 2011 at 09:02:09AM -0800, Dan Wendlandt wrote:
> Oh, definitely. I really should have set "create a blueprint and target it as
> essex-3 as a place-holder". We'll definitely need to talk through the design
> first (though we probably don't need to flood the entire OS community with such
> detailed discussions, so we can move it to the netstack list).

Okay.


> - window between port creation and port becoming usable.
> Currently, there is a window that VM can't connect to the network.
>
> 1. ovs port creation by nova-compute virt-driver
> 2. nova-compute call nova-network which calls quantum rest API
> 3. instance creation and guest VM starts.
> the VM can't send/receive until OVS agent finds the port.
> 4. ovs agent polls on compute node, and make the port available.
>
>
> I'd like to fix the window. nova-network doesn't have informations enough.
> So the possible options is
> - have nova-compute call quantum API, or
> - have nova-compute pass more information (maybe libvirt_vif_driver
> specific) as rpc argument to nova-network
> Maybe the first option would make the code simple, but it breaks the
> boundary between compute and netowrk. So my preference is the second
> option.
> Or any other ideas?
>
>
>
> I think the order above is incorrect. If you look in nova/compute/manager.py's
> _run_instance() method, the allocate_network() call is called before _spawn(),
> which IIRC means that Quantum will be called and the port created + attached
> before the VM port is created on OVS or the VM is started. So I don't think
> there's a fundamental ordering problem. It may just be that the polling period
> in the OVS agent needs to be tuned down. I've been thinking about splitting
> the logic that spots a port and putting it in a separate thread with a shorter
> polling interval, which may help. Or it may be a bug that you're seeing :)

The polling period is the window. Shortening the interval make the window
small, but never eliminates it. I'd like to make the agent work done before
staring instance.


> > It also looks like you have some small nova changes, mostly around the
> > QuantumManager + OVS vif-plugging. I think some of them may not be
> necessary
> > after some work done by brad in essex-2 around integrating QuantumManager
> with
> > L3 + NAT (recently merged into trunk), but we can help figure that out as
> well.
>
> The new firewall driver and network interface driver we introduced are
> for demonstration making the point clear.
> Nop firewall driver is introduced in order to show that the packet
> filtering
> is done by Ryu, not by iptables.
> If iptables firewall driver is enabled, it doesn't harm, it's just
> bypassed.
>
>
> Yeah, that made sense. I was more talking about some of the tweaks you did to
> enable metadata + and general L3 forwarding in QuantumManager. Brad had a
> blueprint on that part fo the code that went in a week or so ago.

I see. I'll have a look at the blue print.

--
yamahata


dan at nicira

Dec 9, 2011, 6:44 PM

Post #6 of 6 (2 views)
Permalink
Re: [ANNOUNCE] Ryu OSS Network Operating System [In reply to]

On Fri, Dec 9, 2011 at 5:13 PM, Isaku Yamahata <yamahata [at] valinux>wrote:
>
>
> The polling period is the window. Shortening the interval make the window
> small, but never eliminates it. I'd like to make the agent work done before
> staring instance.
>

I think one way to do what you are suggesting is to have the OVS
vif-plugging code in nova compute create the linux device, attach it to
OVS, then wait until OVS has been provisioned before continuing and
spinning up the VM. This should be pretty doable, as the agent could
signal this by setting an attribute of the port in the OVS DB. If this is
important to you even after we drive down the polling interval, we can
definitely do this.

Dan



>
>
> > > It also looks like you have some small nova changes, mostly around
> the
> > > QuantumManager + OVS vif-plugging. I think some of them may not be
> > necessary
> > > after some work done by brad in essex-2 around integrating
> QuantumManager
> > with
> > > L3 + NAT (recently merged into trunk), but we can help figure that
> out as
> > well.
> >
> > The new firewall driver and network interface driver we introduced
> are
> > for demonstration making the point clear.
> > Nop firewall driver is introduced in order to show that the packet
> > filtering
> > is done by Ryu, not by iptables.
> > If iptables firewall driver is enabled, it doesn't harm, it's just
> > bypassed.
> >
> >
> > Yeah, that made sense. I was more talking about some of the tweaks you
> did to
> > enable metadata + and general L3 forwarding in QuantumManager. Brad had
> a
> > blueprint on that part fo the code that went in a week or so ago.
>
> I see. I'll have a look at the blue print.
>
> --
> yamahata
>



--
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dan Wendlandt
Nicira Networks: www.nicira.com
twitter: danwendlandt
~~~~~~~~~~~~~~~~~~~~~~~~~~~

OpenStack dev RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.