POX » History » Version 3

« Previous - Version 3/4 (diff) - Next » - Current version
Thiago Paiva, 09 Oct 2013 10:14


POX

Sobre o código

Linguagem

Linguagem utilizada para o desenvolvimento.

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.

Suporte a versões do OpenFLOW

  • Quais são as versões de OpenFlow suportadas pelo controlador / framework.
  • Como isso é implementado

Requisitos

  • pacotes a serem instalados
  • espaço de armazenamento exigido
  • outros recursos necessários ao funcionamento do controlador.

Independência de linguagem de programação

Quais linguagens são suportadas na implementação de aplicações e componentes.

Modularidade

Quanto e que tipo de modularidade o controlador oferece.

Repositório

Onde encontrar o código.

Recursos básicos do controlador

Recursos oferecidos pelo controlador sem a necessidade de aplicações, como por exemplo:
  • GRE tunneling
  • VLAN support

Aplicações

Componentes disponíveis que acrescentam ferramentas ao controlador, como por exemplo:
  • topology discovery
  • MAC based segregation

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.

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.

Documentação

Nível de documentação do controlador, incluindo tutoriais e exemplos (tanto de estruturas quanto de aplicações).

Suporte junto ao OpenStack

Como o ambiente estruturado se baseia no OpenStack, é interessante saber qual é o tipo de suporte oferecido a essa ferramenta.

Quem usa

Público do controlador

Quem está por trás

Empresas, consórcio, comunidade, universidade, ...

ú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.

Outras características

Características que não se adequam a nenhuma das anteriores.

Overview

  • irmão mais novo do NOX
  • plataforma para desenvolvimento rápido e prototipagem de controladores OpenFlow (framework)
  • linguagem: python
  • alvo principal é a pesquisa

Código no GitHub

https://github.com/noxrepo/pox

Requerimentos

  • Python 2.7

Usado para

  • SDN debugging
  • network virtualization
  • projeto de controladores
  • modelagem de programação
  • desenvolvimento de um moderno controlador SDN

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

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()'.

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:
    ...

Tutoriais

Also available in: PDF HTML TXT