ljerezchaves / ofswitch13 Goto Github PK
View Code? Open in Web Editor NEWOFSwitch13: OpenFlow 1.3 module for ns-3.
Home Page: http://www.lrc.ic.unicamp.br/ofswitch13/
License: GNU General Public License v2.0
OFSwitch13: OpenFlow 1.3 module for ns-3.
Home Page: http://www.lrc.ic.unicamp.br/ofswitch13/
License: GNU General Public License v2.0
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Implementar parser das requisições de estatísticas de fluxo.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Validar questão do envio e recebimento de pacotes pelos Sockets TCP. Percebi que uma boa quantidade de pacotes recebidos pelo controlador apresentam erro, e acredito que estão relacionados com o tamanho do pacote e o SegmentSize do socket.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Na parte de uso, onde tem os trechos de códigos, acho que precisa melhorar um pouco a explicação do que está acontecendo... Na minha opinião ficou meio confuso...
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Atualizar o wscrip de compilação do ofswitch13 explicitando as dependências do módulo.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Verificar se é preciso fazer alguma mudança no epchelper para se adaptar melhor ao ofswtich13.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
O tamanho dos pacotes TCP que estou observando na rede do experimento epc-of sempre estão com 536 bytes. Já li algo na lista sobre um valor conservativo, mas é preciso aumentar esse tamanho.
Hello, I am using the ofswitch13 module for my research.
But, when I simulate the external controller example, it does connect the onos, but the ping fails every time.
I think link doesn't form between the hosts, switches, and switches and switches.
Can you please solve the problem, please?
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Implementar suporte ao flow-mod no switch para table id 0xff
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Ao receber o primeiro packet_in do switch, o Ryu trava. Acredito que seja algum problema na construção do packet_in, já que ainda não testei o comportamento no controlador interno do ns3.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Implementar no controlador a funcionalidade de setar as configurações do switch.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
O exemplo de controlador externo está apresentando instabilidade em estabelecer conexões TCP com o Ryu, rodando na máquina local, através do TapBridge.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Como o helper está forçando o endereçamento dos switches e do controlador na rede 10.100.150.0/24, se num determinado cenário tivermos dois controladores, então o esquema atual falha por conflitos de endereço. A estratégia aqui é definir o endereço da rede como um atributo, permitindo que o usuário possa configurá-lo como quiser.
Originally reported by Akin Soysal (Bitbucket: akinsoysal, GitHub: akinsoysal)
Hello,
I have some bugfixes and some enhancements.
We are working on enhancing the ONOS SDN controller. Instead of Mininet I tried your ofswitch13 module. It took me sometime but I finally did manage to get it properly working by enhancing the code which I obtained after going through the step by step instructions under:
http://www.lrc.ic.unicamp.br/ofswitch13/ofswitch13.pdf
I have added a lot of working examples under scratch/.
Best Regards,
Akın
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Erro ao liberar a mensagem de echo request no switch.
Dear @ljerezchaves,
I would like to use your implementation in NS3 for some research in 5G network slicing. In order to achieve this i would like to use an external SDN controller (ONOS is my prefered choice) but i found a critical bug.
I observed using wireshark that OpenFlow LLDP package that was received in the SDN controller (OFPT_PACKET_IN) was truncated previously by the ofswitch13 switches, affecting to the last part of the Data field of the OpenFlow 1.3 package.
It's true that with floodlight controller works, because i imagine that the fields that need to build the topology are correct (since the truncation happens at the end of the package) but ONOS needs this last part of the package and using a simple topology like this:
ONOS goes crazy (because the received message indicates for example that Port Description is Port\330g in stead of Port 2).
Below I attached a wireshark capture form ONOS and Floodlight controllers to see clearly what i'm talking about.
Any idea?
Thanks,
Rubén.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Verificar a compatibilidade das versões do openflow nas mensagens de hello.
This line should be :
eth_type = ntohs(proto->eth_snap->snap_type);
Otherwise, next protocols are not processed.
Hi!
Are there some general directions on how to port this module to ns 3.36 ?
Originally reported by Ahmed Abdelsalam (Bitbucket: aabdelsalam, GitHub: aabdelsalam)
I am using nsc-0.5.3 with ns-3-dev 3.23 to test different tcp versions. I used the simple example "tcp-nsc-lfn" from examples/tcp to ensure the functionality of nsc. First I noticed that, if I run this script directly from the examples folder, it runs properly and allows me to change the tcp version using
Config::Set ("/NodeList/*/$ns3::Ns3NscStack<linux2.6.26>/net.ipv4.tcp_congestion_control", StringValue (tcpver)). However, when I run the same script from the scratch folder it doesn't accept the "net.ipv4.tcp_congestion_control" attribute with one of the following error messages ( the error messages alternate each run).
printk[0]: 0.000000) <4>nsc_convert_syserr_to_nscerr: Unhandled error number -1
msg="setting net.ipv4.tcp_congestion_control to hybla failed (retval -1 stack linux2.6.26", file=../src/internet/model/nsc-sysctl.cc, line=151
terminate called without an active exception
OR
msg="Attribute name=net.ipv4.tcp_congestion_control does not exist for this object: tid=ns3::Ns3NscStack<linux2.6.26>", file=../src/core/model/object-base.cc, line=198
After a lot of digging and investigations, I can confirm that there is a conflict caused by the enabled modules "Openflow" and "OFSwitch13". Unlike, "Scratch Folder" the examples are built against specific modules instead of all_modules, thus the script can run normally from examples.
I interested to analyze different tcp variants available on the linux kernel on NSC stacks with the presence of openflow switch.
my system is NS-3.23 on Ubuntu 14.04, x64 / gcc-4.8/4.9/5.3. python 2.7
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Ativar o sistema de log do ofsoftswitch13 a partir do simulador.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Add support to local ports into OpenFlow switch.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Criar o método para gerar um packet_out no controlador.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
É preciso planejar e implementar um novo campo OXM para verificar o GTP TEID. Tomar como base o documento do Kempf2012.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Criar um timer para as mensagens de echo request/reply.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Com a implementação atual do OpenFlow, os pacotes internos do ns3 são destruídos ao entrar no switch e reconstruídos ao serem enviados por alguma porta de saída. Isso faz com que as tags associadas ao pacote (e acredito também, aos bytes) se percam. Por conta disso, o FlowMonitor não consegue funcionar corretamente.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Incluir no StartControllerConnection como parâmetro o netdevice criado para conectar o switch ao canal de controle do openflow, e alterar a função para fazer bind no endereço e device específicos.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Testar os diversos comandos do DcptCommand no controlador, e verificar no trace pacp se as mensagens estão sendo enviadas corretamente para o switch e respondidas ao controlador (quando for o caso)
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Criar uma entrada na tabela para broadcast, evitando assim pacotes de broadcast de irem para o controlador.
Hello,
I'm experiencing some issues when running large scale and long simulations using ofswitch13.
After a while the program receives a segmentation fault at OFSwitch13Device::BufferPacketRetrieve. In shorter simulations the module appears to work without problems, so I was not yet able to identify what is the cause of the problem. Or if this occurs in time consuming simulations (multiple hours), due to large amounts of traffic or when dealing with multiple data streams at the same time.
I've attached a gdb output showing the issue.
gdboutput.txt
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Add support for multiple controllers into OFSwitch13.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Na documentação gerada pelo doxygen, os métodos das classes do OFSwitch13 não estão com indicação de "Definition at line ... of file ..." como acontece em todas as outras classes do simulador.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Implementar a função MultipartMsgTableFeatures
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Para que uma rede de switches OpenFlow possa fazer flood de pacotes corretamente (como é necessário para o caso do protocolo ARP), é preciso rodar um algoritmo de spanning tree e desabilitar os enlaces desnecessários que formam loops. O objetivo é implementar esse algoritmo no learning controller.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Eliminar a dependência entre o controlador (m_helper) e o helper usado para criar a rede.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Implementar o suporte à buffers para pacotes no switch. Usar o features/buffers.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Na parte do log do switch, acho que seria legal dar um exemplo de como fazer isso.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Implementar uma solução para o protocolo ARP no OFSwitch13LearningController.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Para permitir no futuro uma qualidade de serviço melhor, é preciso equipar as portas do switch com diferentes filas de saída.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Validar o mecanismo de barreiras (mesmo que seja para abortar caso as mensagens saiam da ordem).
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Na seção referençes, Inserir aqui uma referência para o artigo https://dl.dropboxusercontent.com/u/15183439/pubs/sbrc14-ferramentas-ofsoftswitch13.pdf
When the controller sends a Packet_Out with a SetField Action, the buffer_id and other fields would be set to zero, when packing the packet to be sent.
On further debugging, I found that the problem is on function ofl_msg_pack_packet_out
line: 227 ( https://github.com/ljerezchaves/ofsoftswitch13/blob/625f01384522579db8f1c361209319530d53774a/sources/oflib/ofl-messages-pack.c#L227 )
the pointer to buf is never updated while packing an action, which overwrites the packet_out fields.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Depois que o learning controller instala uma rota no switch, se a rota expira por tempo a implementação atual não instala uma nova rota.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
The use of PacketMetadata::EnableChecking () together with OFSwitch13 may result in assert failures.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
É preciso criar um novo cenário de exemplo, com base no single-example, que contenha apenas um switch mas diversos terminais em cada um deles, com diferentes fluxos entre os terminais.
I attempt to patch the ns-3.37 modules as per the instructions in the docs. This is done from the ns-3.37 base directory.
However, the files cannot be found.
patch -p1 < contrib/ofswitch13/utils/ofswitch13-3_37.patch
can't find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git a/build-support/custom-modules/ns3-configtable.cmake b/build-support/custom-modules/ns3-configtable.cmake
|index 3b972d8fe..3d2ec356a 100644
|--- a/build-support/custom-modules/ns3-configtable.cmake
|+++ b/build-support/custom-modules/ns3-configtable.cmake
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 19
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git a/src/csma/model/csma-net-device.cc b/src/csma/model/csma-net-device.cc
|index 9180e6c14..48932222d 100644
|--- a/src/csma/model/csma-net-device.cc
|+++ b/src/csma/model/csma-net-device.cc
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
2 out of 2 hunks ignored
can't find file to patch at input line 72
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git a/src/csma/model/csma-net-device.h b/src/csma/model/csma-net-device.h
|index 4c7af46c8..ca24e0d87 100644
|--- a/src/csma/model/csma-net-device.h
|+++ b/src/csma/model/csma-net-device.h
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
2 out of 2 hunks ignored
can't find file to patch at input line 103
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git a/src/virtual-net-device/model/virtual-net-device.cc b/src/virtual-net-device/model/virtual-net-device.cc
|index 6b19ef1d7..b6122ac71 100644
|--- a/src/virtual-net-device/model/virtual-net-device.cc
|+++ b/src/virtual-net-device/model/virtual-net-device.cc
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
2 out of 2 hunks ignored
can't find file to patch at input line 149
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git a/src/virtual-net-device/model/virtual-net-device.h b/src/virtual-net-device/model/virtual-net-device.h
|index 66718596a..c0eb0c468 100644
|--- a/src/virtual-net-device/model/virtual-net-device.h
|+++ b/src/virtual-net-device/model/virtual-net-device.h
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
2 out of 2 hunks ignored
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Como o ofsoftswitch13 é implementado usando funções de tempo real do kernel, e o ns3 usa um tempo de simulação independente, não há compatibilidade nos campos "time" das estruturas. Isso impede, por exemplo, o timeout de regras nas tabelas. É preciso encontrar uma estratégia para solucionar este problema.
Originally reported by Luciano Chaves (Bitbucket: ljerezchaves, GitHub: ljerezchaves)
Voltar a implementação atual para o mais próxima possível do código do simulador. A intenção é diminuir ao máximo as modificações que eu fizer.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.