Ryu » History » Version 9
Version 8 (Thiago Paiva, 09 Oct 2013 11:06) → Version 9/10 (Thiago Paiva, 10 Oct 2013 00:56)
h1. Ryu
h2. Página do projeto
www.osrg.net/ryu
* Network opearting system
* OVS, openflow switch
h2. Sobre o código
h3. Linguagem
Python 2.7
h3. Licença
Apache 2.0 license
h3. Suporte a versões do OpenFLOW
* 1.0 with Nicira Extensions
* 1.2
* 1.3
h3. Requisitos
* ambiente Python 2.7
h3. Independência de linguagem de programação
Comunicação por mensagens, então, pode conversar com qualquer aplicativo que implemente essas mensagens. Somente Python 2.7
h3. Modularidade
???
h3. Repositório
git://github.com/osrg/ryu.git
h3. Recursos básicos do controlador
* GRE tunneling
* VLAN support
* IPv6
* topology discovery
* MAC based segregation
h3. Aplicações
https://github.com/osrg/ryu/tree/master/ryu/app
* cbench.py cbench.py: cbench: specify OF1.0
* client.py client.py: app/client: update for quantum->neutron change
* conf_switch_key.py conf_switch_key.py: ryu/app/conf_switch_key: fix a comment
* gre_tunnel.py gre_tunnel.py: appease pep8
* ofctl_rest.py ofctl_rest.py: ryu/app/ofctl_rest: add of1.3 support
* quantum_adapter.py quantum_adapter.py: app/quantum_adapter: Lazily initialize neutron client
* rest.py: app/rest app/rest: add requirements to path component
* rest_conf_switch.py rest_conf_switch.py: log-cleanup: remove an unused logger instance
* rest_firewall.py rest_firewall.py: rest_firewall: improve REST response
* rest_nw_id.py rest_nw_id.py: app/rest_nw_id: add port type for reserved port and vport-gre
* rest_quantum.py rest_quantum.py: fix typos in comments
* rest_router.py rest_router.py: rest_router: make pep8 comfortable
* rest_topology.py rest_topology.py: topology: Add REST API
* rest_tunnel.py rest_tunnel.py: rest_tunnel: fix comment typos
* simple_isolation.py simple_isolation.py: use ofproto.OFP_NO_BUFFER in some places
* simple_switch.py simple_switch.py: simple_switch: simplify
* simple_switch_12.py simple_switch_12.py: simple_switch_12: reduce difference from simple_switch_13
* simple_switch_13.py simple_switch_13.py: add simple learning switch app for OF1.3
* simple_switch_lacp.py simple_switch_lacp.py: add LACP application
* simple_vlan.py simple_vlan.py: simple_vlan.py: race condition
* tunnel_port_updater.py tunnel_port_updater.py: sweep the tree to change from gevent to ryu.lib.hub
* wsgi.py wsgi.py: Switch how to call the API of Routes for every version
h3. Testes
https://github.com/osrg/ryu/tree/master/ryu/tests
* app app: To specify a context of a controller from WSGIApplication#register()
* lib lib: test_addrconv: add more test
* ofproto ofproto: ofproto: remove unused definitions
* packe packet: packet.bgp: parse/serialize FOUR OCTET AS NUMBER capability
* sample sample: discard sample/test_simple_switch because of unittest fail
h3. Disponibilidade nas distribuições GNU/Linux
Pode ser instalado com o gerenciador 'pip'.
h3. Último release / commit
* Aplicações: "a month ago"
* Testes: "a day ago"
* Core: "a day ago"
h2. Documentação
h3. Documentação oficial
http://ryu.readthedocs.org/en/latest/index.html
h3. Tutoriais
https://github.com/osrg/ryu/wiki/OpenFlow_Tutorial
h2. Suporte junto ao OpenStack
Quantum Ryu plugin. VM pré-configurada para testar OpenStack + Ryu.
https://github.com/osrg/ryu/wiki/OpenStack
* Flat networks regardless of the underlying physical network
* Scalable multi-tenant isolations
** tunneling based isolations
** VLAN does not scale larger than 4096
** do not need high-end switches
* Future items:
** integration with quantum IPAM and L3 API
** firewall
** virtual network <--> physical network
** distributed controllers (redundancy)
h3. Communication
'nova requests quantum-server for network configuragion'
OVS <--> Ryu: openflow
Ryu agent <--> Ryu: REST API
Quantum server <--> Ryu: REST API
Ryu agent <--> Quantum db: db access
VIF driver <--> quantum: Quantum API
linux_net driver <--> server: Quantum API
h3. Network Creation (network-node = nova-network + linux_net driver + OVS)
# to nova-network: create netork
# nova network --> quantum server: create net
# quantum server --> Ryu: network <uuid>, <tunnel key>
# quantum server --> nova network: <uuid>
# nova network --> linux_net driver: plug
# linux_net driver --> OVS: create gw-xxx
# linux_net driver --> quantum server: tentant id, network id, dp id, port, mac
# quantum server --> Ryu: network id, dp id, port, mac
# ryu --> OVS: set flow entryies
h3. Instance creation (compute-node = nova compute + VIF driver + OVS)
# to nova compute: create instance
# nova compute --> quantum server: create port
# quantum server --> nova compute: uuid
# nova compute --> VIF driver: plug
# VIF driver --> OVS: create tap-xxx
# VIF driver --> quantum server: (tenant_id, dp_id, port, mac)
# quantum server --> Ryu: (network_id, dp_id, port, mac)
# Ryu --> OVS: set flow entryies
h3. Node boot up (compute/network-node = OVS + Ryu agent + ryu_v2.ini)
# ryu_v2.ini --> Ryu agent: get ip address
# Ryu agent --> quantum db: register (dp_id, ip_address)
# quantum db --> Ryu agent: get list of (dp_id, ip_address, and polling)
# Ryu agent --> OVS: create vport_grc to ip address
# Ryu agent --> Ryu: register (dp_id, port_id, remote dp_id)
h2. Quem usa
???
h2. Quem está por trás
NTT Lab
h2. Outras características
h2. Página do projeto
www.osrg.net/ryu
* Network opearting system
* OVS, openflow switch
h2. Sobre o código
h3. Linguagem
Python 2.7
h3. Licença
Apache 2.0 license
h3. Suporte a versões do OpenFLOW
* 1.0 with Nicira Extensions
* 1.2
* 1.3
h3. Requisitos
* ambiente Python 2.7
h3. Independência de linguagem de programação
Comunicação por mensagens, então, pode conversar com qualquer aplicativo que implemente essas mensagens. Somente Python 2.7
h3. Modularidade
???
h3. Repositório
git://github.com/osrg/ryu.git
h3. Recursos básicos do controlador
* GRE tunneling
* VLAN support
* IPv6
* topology discovery
* MAC based segregation
h3. Aplicações
https://github.com/osrg/ryu/tree/master/ryu/app
* cbench.py cbench.py: cbench: specify OF1.0
* client.py client.py: app/client: update for quantum->neutron change
* conf_switch_key.py conf_switch_key.py: ryu/app/conf_switch_key: fix a comment
* gre_tunnel.py gre_tunnel.py: appease pep8
* ofctl_rest.py ofctl_rest.py: ryu/app/ofctl_rest: add of1.3 support
* quantum_adapter.py quantum_adapter.py: app/quantum_adapter: Lazily initialize neutron client
* rest.py: app/rest app/rest: add requirements to path component
* rest_conf_switch.py rest_conf_switch.py: log-cleanup: remove an unused logger instance
* rest_firewall.py rest_firewall.py: rest_firewall: improve REST response
* rest_nw_id.py rest_nw_id.py: app/rest_nw_id: add port type for reserved port and vport-gre
* rest_quantum.py rest_quantum.py: fix typos in comments
* rest_router.py rest_router.py: rest_router: make pep8 comfortable
* rest_topology.py rest_topology.py: topology: Add REST API
* rest_tunnel.py rest_tunnel.py: rest_tunnel: fix comment typos
* simple_isolation.py simple_isolation.py: use ofproto.OFP_NO_BUFFER in some places
* simple_switch.py simple_switch.py: simple_switch: simplify
* simple_switch_12.py simple_switch_12.py: simple_switch_12: reduce difference from simple_switch_13
* simple_switch_13.py simple_switch_13.py: add simple learning switch app for OF1.3
* simple_switch_lacp.py simple_switch_lacp.py: add LACP application
* simple_vlan.py simple_vlan.py: simple_vlan.py: race condition
* tunnel_port_updater.py tunnel_port_updater.py: sweep the tree to change from gevent to ryu.lib.hub
* wsgi.py wsgi.py: Switch how to call the API of Routes for every version
h3. Testes
https://github.com/osrg/ryu/tree/master/ryu/tests
* app app: To specify a context of a controller from WSGIApplication#register()
* lib lib: test_addrconv: add more test
* ofproto ofproto: ofproto: remove unused definitions
* packe packet: packet.bgp: parse/serialize FOUR OCTET AS NUMBER capability
* sample sample: discard sample/test_simple_switch because of unittest fail
h3. Disponibilidade nas distribuições GNU/Linux
Pode ser instalado com o gerenciador 'pip'.
h3. Último release / commit
* Aplicações: "a month ago"
* Testes: "a day ago"
* Core: "a day ago"
h2. Documentação
h3. Documentação oficial
http://ryu.readthedocs.org/en/latest/index.html
h3. Tutoriais
https://github.com/osrg/ryu/wiki/OpenFlow_Tutorial
h2. Suporte junto ao OpenStack
Quantum Ryu plugin. VM pré-configurada para testar OpenStack + Ryu.
https://github.com/osrg/ryu/wiki/OpenStack
* Flat networks regardless of the underlying physical network
* Scalable multi-tenant isolations
** tunneling based isolations
** VLAN does not scale larger than 4096
** do not need high-end switches
* Future items:
** integration with quantum IPAM and L3 API
** firewall
** virtual network <--> physical network
** distributed controllers (redundancy)
h3. Communication
'nova requests quantum-server for network configuragion'
OVS <--> Ryu: openflow
Ryu agent <--> Ryu: REST API
Quantum server <--> Ryu: REST API
Ryu agent <--> Quantum db: db access
VIF driver <--> quantum: Quantum API
linux_net driver <--> server: Quantum API
h3. Network Creation (network-node = nova-network + linux_net driver + OVS)
# to nova-network: create netork
# nova network --> quantum server: create net
# quantum server --> Ryu: network <uuid>, <tunnel key>
# quantum server --> nova network: <uuid>
# nova network --> linux_net driver: plug
# linux_net driver --> OVS: create gw-xxx
# linux_net driver --> quantum server: tentant id, network id, dp id, port, mac
# quantum server --> Ryu: network id, dp id, port, mac
# ryu --> OVS: set flow entryies
h3. Instance creation (compute-node = nova compute + VIF driver + OVS)
# to nova compute: create instance
# nova compute --> quantum server: create port
# quantum server --> nova compute: uuid
# nova compute --> VIF driver: plug
# VIF driver --> OVS: create tap-xxx
# VIF driver --> quantum server: (tenant_id, dp_id, port, mac)
# quantum server --> Ryu: (network_id, dp_id, port, mac)
# Ryu --> OVS: set flow entryies
h3. Node boot up (compute/network-node = OVS + Ryu agent + ryu_v2.ini)
# ryu_v2.ini --> Ryu agent: get ip address
# Ryu agent --> quantum db: register (dp_id, ip_address)
# quantum db --> Ryu agent: get list of (dp_id, ip_address, and polling)
# Ryu agent --> OVS: create vport_grc to ip address
# Ryu agent --> Ryu: register (dp_id, port_id, remote dp_id)
h2. Quem usa
???
h2. Quem está por trás
NTT Lab
h2. Outras características