Network Simulator 2 em Sistemas Telemáticos


  1. NS-2 para Sistemas Telemáticos
  2. Packages debian (i386 e powerpc)
  3. Patch para adicionar o PIM-SM às sources
  4. Estoiro "unset active_"
  5. Estoiro no dump-routes (bug do NS2)
  6. Problema de compilação do NAM

1. NS-2 para Sistemas Telemáticos

Qualquer versão superior a ns-2.1b8 possui os requisitos necessários. Utilizar a última versão disponível à qual se possa aplicar o patch PIM-SM. As versões ns-2.28 e ns-2.29 são as mais recentes e funcionam bem no Windows com http://x.cygwin.com/.

A instalação actual dos laboratórios resulta da seguinte sequência de comandos:

# cd /usr/local
# wget http://www.isi.edu/nsnam/dist/ns-allinone-2.29.tar.gz
# zcat ns-allinone-2.29.tar.gz | tar xvf -
# chown -R root.root ns-allinone-2.29
# cd ns-allinone-2.29
# wget http://marco.uminho.pt/~joao/pim-ns2/patch-2.29.pim.gz
# wget http://marco.uminho.pt/disciplinas/ST/nam-1.11.patch
# gunzip patch-2.29.pim.gz
# cd ns-2.29
# patch -p1 < ../patch-2.29.pim
# cd ../nam-1.11
# patch < ../nam-1.11.patch
# cd ..
# ./install
# cd ns-2.29
# make install
# cd ../nam-1.11
# make install

2. Packages debian (i386 e powerpc)

O Nuno Carvalho, disponibilizou no servidor gil os pacotes ns e nam (bem como as suas dependências) compilados para Ubuntu 5.10 i386 e powerpc, e também as sources seguindo a filosofia desta distribuição. Todos os pacotes do ns já incluem o patch com o módulo PIM-SM. Partiu de sources debianzadas pelo Andre Herm disponibilizadas aqui.

Instalação do ns2 com o módulo PIM-SM, em ubuntu i386 e powerpc:

  1. Acrescentar as seguintes linhas ao ficheiro /etc/apt/sources.list:
    # ns
    deb ftp://ftp.gil.di.uminho.pt/pub/users/knocker/ubuntu breezy ns2
    
  2. Actualizar lista de pacotes disponíveis:
    $ apt-get update
    
  3. Instalar os pacotes ns e nam:
    $ apt-get install ns nam
    

3. Patch para adicionar o PIM-SM às sources

A implementação do PIM-SM para o NS-2 que está disponível na forma de patch deve ser previamente acrescentada ao simulador:

Este patch também corrige o estoiro no dump-routes.


4. Estoiro "unset active_"

Ao simular uma falha de um link, ocorre um erro do género:

ns: _o528 recv-update 2 233: can't unset "active_": no such variable
    while executing
"unset active_"
    (procedure "_o603" line 9)
    (Classifier/Replicator/Demuxer reset line 9)
    invoked from within
"$r reset"

Este erro já está corrigido na nova versão do patch PIM-SM, mas se precisar corrigir apenas este erro (por exemplo por ter aplicado uma versão mais antiga do patch PIM) basta aplicar este patch:


5. Estoiro no dump-routes (bug do NS2)

Ao imprimir a tabela de encaminhamento multicast usando o dump-routes ocorre um erro do género:

ns: _o10 dump-routes file5: expected integer but got "x"
    while executing
    "format "\t%5s\t  %s\t\t%d\t0x%x\t%s\t\t%s"      $reps($ent) $active $s $g $iif_node_id $dest"
    (procedure "_o362" line 43)
    (McastProtocol dump-routes line 43)
    (...)

Este erro já está corrigido na nova versão do patch PIM-SM, mas se precisar corrigir apenas este erro (por exemplo por ter aplicado uma versão mais antiga do patch PIM) basta aplicar este patch:


6. Problema de compilação do NAM

Nalguns sistemas, como por exemplo no Windows com cygwin, o NAM dá um erro de compilação do género:

agent.h:73: error: expected `0' before ""
agent.h:73: error: invalid initializer for virtual method `virtual void Agent::findClosestCornertoPoint(double, double, double&, double&) const'

Descarregue e aplique o patch nam-1.11.patch:

% cd ns-allinone-2.28/nam-1.11
% wget http://marco.uminho.pt/disciplinas/ST/nam-1.11.patch
% patch < nam-1.11.patch
% make

Alternativamente, pode simplesmente trocar o NULL por 0 na linha 73 do ficheiro agent.h que é exactamente o que o patch faz...


Last Modified on Mon 14 Nov 2005, by J. Macedo & António Costa

Valid HTML 4.01! Created with Vim Editor