POX » History » Version 3
Version 2 (Thiago Paiva, 01 Oct 2013 10:57) → Version 3/4 (Thiago Paiva, 09 Oct 2013 10:14)
h1. POX
h2. Sobre o código
h3. Linguagem
Linguagem utilizada para o desenvolvimento.
h3. Licença
Licença em que o código foi liberado. A preferência é por licenças livres, facilitando assim o estudo e desenvolvimento de aplicações ou até mesmo de correções de problemas.
h3. Suporte a versões do OpenFLOW
* Quais são as versões de OpenFlow suportadas pelo controlador / framework.
* Como isso é implementado
h3. Requisitos
* pacotes a serem instalados
* espaço de armazenamento exigido
* outros recursos necessários ao funcionamento do controlador.
h3. Independência de linguagem de programação
Quais linguagens são suportadas na implementação de aplicações e componentes.
h3. Modularidade
Quanto e que tipo de modularidade o controlador oferece.
h3. Repositório
Onde encontrar o código.
h3. Recursos básicos do controlador
Recursos oferecidos pelo controlador sem a necessidade de aplicações, como por exemplo:
* GRE tunneling
* VLAN support
h3. Aplicações
Componentes disponíveis que acrescentam ferramentas ao controlador, como por exemplo:
* topology discovery
* MAC based segregation
h3. Testes
Existência de testes de unidades no codigo (scripts ou códigos), geralmente em uma pasta em separado, que validam e testam o código desenvolvido.
h3. Disponibilidade nas distribuições GNU/Linux
Disponibilidade e facilidade de instação nas distribuição GNU/Linux relevantes atuais.
* disponível nos repositórios da distribuição?
* versão dos pacotes disponíveis
* ênfase nas distros Debian e Ubuntu.
h2. Documentação
Nível de documentação do controlador, incluindo tutoriais e exemplos (tanto de estruturas quanto de aplicações).
h2. Suporte junto ao OpenStack
Como o ambiente estruturado se baseia no OpenStack, é interessante saber qual é o tipo de suporte oferecido a essa ferramenta.
h2. Quem usa
Público do controlador
h2. Quem está por trás
Empresas, consórcio, comunidade, universidade, ...
h2. último release / commit
Uma das formas de se ter noção de quanto o desenvolvimento ainda está ativo é procurar pela data da última atualização de código no repositório.
h2. Outras características
Características que não se adequam a nenhuma das anteriores.
h2. Overview
* irmão mais novo do NOX
* plataforma para desenvolvimento rápido e prototipagem de controladores OpenFlow (framework)
* linguagem: python
* alvo principal é a pesquisa
* POX wiki: instalação, componentes, APIs, openflow e FAQ (bem completo)
https://openflow.stanford.edu/display/ONL/POX+Wiki
* mininet + POX
http://mininet.org/blog/2013/06/03/automating-controller-startup/
* Configuring an OpenFlow POX SDN Controller and HP Switches
http://networkstatic.net/configuring-an-openflow-pox-sdn-controller-and-hp-switches/
h2. Código no GitHub
https://github.com/noxrepo/pox
h3. Requerimentos
* Python 2.7
h2. Usado para
* SDN debugging
* network virtualization
* projeto de controladores
* modelagem de programação
* desenvolvimento de um moderno controlador SDN
h2. Características
* interface pythonica para OpenFlow
* componentes reutilizáveis (modularidade) (recursos prontos)
* não dependente de plataforma (instalar PyPy)
* suporta mesmas ferramentas de visualização do NOX
* melhor desempenho que o NOX para aplicações escritas em python, porém mais lento que NOX/C++
* suporte para OpenFlow 1.0
* especial suporte para Open vSwitch
h2. Funcionamento
pox.py recebe uma lista de módulos na linha de comando e chama a função 'launch()' deles caso ela exista e depois muda para estado 'up'.
Os módulos podem estar nos diretórios 'pox' e 'ext', além dos diretórios normalmente vigiados pela instalação do python.
Opções (--) podem ser acrescidas após o nome do módulo e serão passadas como parâmetro para o chamado da função 'launch()'.
h2. Componentes
* py: interface python (debug)
* forwarding.hub: $10 hub
* forwarding.l2_learning: L2 learning switch
* forwarding.l2_pairs: L2 learning switch based on MAC addresses
* forwarding.l3_learning: "L3-lerning-switchy-thing"
* forwarding.l2_multi:
...
h2. Tutoriais
* openflow tutorial with pox
http://blog.pythonicneteng.com/2013/02/openflow-tutorial-with-pox.html
h2. Sobre o código
h3. Linguagem
Linguagem utilizada para o desenvolvimento.
h3. Licença
Licença em que o código foi liberado. A preferência é por licenças livres, facilitando assim o estudo e desenvolvimento de aplicações ou até mesmo de correções de problemas.
h3. Suporte a versões do OpenFLOW
* Quais são as versões de OpenFlow suportadas pelo controlador / framework.
* Como isso é implementado
h3. Requisitos
* pacotes a serem instalados
* espaço de armazenamento exigido
* outros recursos necessários ao funcionamento do controlador.
h3. Independência de linguagem de programação
Quais linguagens são suportadas na implementação de aplicações e componentes.
h3. Modularidade
Quanto e que tipo de modularidade o controlador oferece.
h3. Repositório
Onde encontrar o código.
h3. Recursos básicos do controlador
Recursos oferecidos pelo controlador sem a necessidade de aplicações, como por exemplo:
* GRE tunneling
* VLAN support
h3. Aplicações
Componentes disponíveis que acrescentam ferramentas ao controlador, como por exemplo:
* topology discovery
* MAC based segregation
h3. Testes
Existência de testes de unidades no codigo (scripts ou códigos), geralmente em uma pasta em separado, que validam e testam o código desenvolvido.
h3. Disponibilidade nas distribuições GNU/Linux
Disponibilidade e facilidade de instação nas distribuição GNU/Linux relevantes atuais.
* disponível nos repositórios da distribuição?
* versão dos pacotes disponíveis
* ênfase nas distros Debian e Ubuntu.
h2. Documentação
Nível de documentação do controlador, incluindo tutoriais e exemplos (tanto de estruturas quanto de aplicações).
h2. Suporte junto ao OpenStack
Como o ambiente estruturado se baseia no OpenStack, é interessante saber qual é o tipo de suporte oferecido a essa ferramenta.
h2. Quem usa
Público do controlador
h2. Quem está por trás
Empresas, consórcio, comunidade, universidade, ...
h2. último release / commit
Uma das formas de se ter noção de quanto o desenvolvimento ainda está ativo é procurar pela data da última atualização de código no repositório.
h2. Outras características
Características que não se adequam a nenhuma das anteriores.
h2. Overview
* irmão mais novo do NOX
* plataforma para desenvolvimento rápido e prototipagem de controladores OpenFlow (framework)
* linguagem: python
* alvo principal é a pesquisa
* POX wiki: instalação, componentes, APIs, openflow e FAQ (bem completo)
https://openflow.stanford.edu/display/ONL/POX+Wiki
* mininet + POX
http://mininet.org/blog/2013/06/03/automating-controller-startup/
* Configuring an OpenFlow POX SDN Controller and HP Switches
http://networkstatic.net/configuring-an-openflow-pox-sdn-controller-and-hp-switches/
h2. Código no GitHub
https://github.com/noxrepo/pox
h3. Requerimentos
* Python 2.7
h2. Usado para
* SDN debugging
* network virtualization
* projeto de controladores
* modelagem de programação
* desenvolvimento de um moderno controlador SDN
h2. Características
* interface pythonica para OpenFlow
* componentes reutilizáveis (modularidade) (recursos prontos)
* não dependente de plataforma (instalar PyPy)
* suporta mesmas ferramentas de visualização do NOX
* melhor desempenho que o NOX para aplicações escritas em python, porém mais lento que NOX/C++
* suporte para OpenFlow 1.0
* especial suporte para Open vSwitch
h2. Funcionamento
pox.py recebe uma lista de módulos na linha de comando e chama a função 'launch()' deles caso ela exista e depois muda para estado 'up'.
Os módulos podem estar nos diretórios 'pox' e 'ext', além dos diretórios normalmente vigiados pela instalação do python.
Opções (--) podem ser acrescidas após o nome do módulo e serão passadas como parâmetro para o chamado da função 'launch()'.
h2. Componentes
* py: interface python (debug)
* forwarding.hub: $10 hub
* forwarding.l2_learning: L2 learning switch
* forwarding.l2_pairs: L2 learning switch based on MAC addresses
* forwarding.l3_learning: "L3-lerning-switchy-thing"
* forwarding.l2_multi:
...
h2. Tutoriais
* openflow tutorial with pox
http://blog.pythonicneteng.com/2013/02/openflow-tutorial-with-pox.html