LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Ubuntu (https://www.linuxquestions.org/questions/ubuntu-63/)
-   -   configure: error: Installation of tclcl seems incomplete or can't be found automatica (https://www.linuxquestions.org/questions/ubuntu-63/configure-error-installation-of-tclcl-seems-incomplete-or-cant-be-found-automatica-4175522820/)

banerjee 10-20-2014 10:25 PM

configure: error: Installation of tclcl seems incomplete or can't be found automatica
 
hi friends,
I am trying ns2.34 on ubuntu 12.04. I used the all-in-one package. while i am typing "ns" command, "%" appears;
the tcl files are running fine along with nam.
but when i am trying to run "make" command it is giving
"make: *** No targets specified and no makefile found. Stop." error. What i found that there is no "Makefile" in ns-2.34 directory. "Makefile.in" and "Makefile.vc" is there.

i am at a loss now. could anyone help me out. Thanks in advance

knudfl 10-21-2014 03:43 AM

Welcome to LQ.

Why would you run make, when you already have the executable 'ns' ?
.. Or could that be an `ns' from a previous ns2 build ?

? Is the file 'ns' present in ns-allinone-2.34/2.34/ :
$ ls ns-allinone-2.34/2.34/ns*

-

banerjee 10-27-2014 03:42 AM

Quote:

Originally Posted by knudfl (Post 5256972)
Welcome to LQ.

Why would you run make, when you already have the executable 'ns' ?
.. Or could that be an `ns' from a previous ns2 build ?

? Is the file 'ns' present in ns-allinone-2.34/2.34/ :
$ ls ns-allinone-2.34/2.34/ns*

-

I tried to compile a new protocol for testing purpose on ns2.34. while i used "make myprotocol.cc" i got the error. And when I tried to run "./validate" in /ns-2.34 directory it gave the following output----

(Validation can take 1-30 hours to run.)
Mon Oct 27 00:33:04 PDT 2014
*** ./test-all-simple
Tests: tahoe1 tahoe1Bytes tahoe1RED tahoe1REDbytes tahoe2 tahoe3 tahoe3RED tahoe4 no_bug bug reno1 reno renoA reno2 reno3 reno4 reno4a reno5 reno5_nobug telnet delayed phase phase1 phase2 timers manyflows stats statsECN stats1 stats1Bytes stats1a stats1aBytes statsHeaders stats2 stats3 stats4 statsTFRC
Running test tahoe1:
../../ns test-suite-simple.tcl tahoe1 QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test tahoe1Bytes:
../../ns test-suite-simple.tcl tahoe1Bytes QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test tahoe1RED:
../../ns test-suite-simple.tcl tahoe1RED QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test tahoe1REDbytes:
../../ns test-suite-simple.tcl tahoe1REDbytes QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test tahoe2:
../../ns test-suite-simple.tcl tahoe2 QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test tahoe3:
../../ns test-suite-simple.tcl tahoe3 QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test tahoe3RED:
../../ns test-suite-simple.tcl tahoe3RED QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test tahoe4:
../../ns test-suite-simple.tcl tahoe4 QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test no_bug:
../../ns test-suite-simple.tcl no_bug QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test bug:
../../ns test-suite-simple.tcl bug QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test reno1:
../../ns test-suite-simple.tcl reno1 QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test reno:
../../ns test-suite-simple.tcl reno QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test renoA:
../../ns test-suite-simple.tcl renoA QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test reno2:
../../ns test-suite-simple.tcl reno2 QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test reno3:
../../ns test-suite-simple.tcl reno3 QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test reno4:
../../ns test-suite-simple.tcl reno4 QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test reno4a:
../../ns test-suite-simple.tcl reno4a QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test reno5:
../../ns test-suite-simple.tcl reno5 QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test reno5_nobug:
../../ns test-suite-simple.tcl reno5_nobug QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test telnet:
../../ns test-suite-simple.tcl telnet QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test delayed:
../../ns test-suite-simple.tcl delayed QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test phase:
../../ns test-suite-simple.tcl phase QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test phase1:
../../ns test-suite-simple.tcl phase1 QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test phase2:
../../ns test-suite-simple.tcl phase2 QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test timers:
../../ns test-suite-simple.tcl timers QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test manyflows:
../../ns test-suite-simple.tcl manyflows QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test stats:
../../ns test-suite-simple.tcl stats QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test statsECN:
../../ns test-suite-simple.tcl statsECN QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
Running test stats1:
../../ns test-suite-simple.tcl stats1 QUIET
./test-all-template1: 110: ./test-all-template1: ../../ns: not found
^C


COULD YOU PLEASE SUGGEST ANY SOLUTION TO THIS?

knudfl 10-27-2014 06:14 AM

→ #3 .
Quote:

../../ns: not found
Very simple : You have no executable 'ns' in ns-allinone-2.34/2.34/.

banerjee 10-28-2014 11:02 AM

Quote:

Originally Posted by knudfl (Post 5260207)
→ #3 .

Very simple : You have no executable 'ns' in ns-allinone-2.34/2.34/.


thanks a lot frnd....now please tell how to get ns in the ns-2.34 directory....and how the "%" is appearing in command prompt when typing ns ?

knudfl 10-28-2014 01:27 PM

← #5 .
Quote:

how the "%" is appearing in command prompt when typing ns ?
See post #2 : "".. could that be an `ns' from a previous ns2 build ?""

I.e. you can only have one file by name "ns" on your OS.
All other "ns" must be renamed to "ns_new-name".
I.e., i.e. you can have an infinite number of ns-allinone-2.xx installs
on one OS. But : Do never never add any *PATH text to .bashrc .
HOWTO : 1) $ cp ns ns-new-name 2) $ sudo cp ns-new-name /usr/local/bin/
... And then run all relevant simulations with $ ns-new-name file.tcl

Ubuntu 12.04.3, HOWTO build ns-allinone-2.34 :
$ sudo apt-get install g++-4.4
In a new folder in /home/name/ :
$ tar xvf ns-allinone-2.34.tar.gz
$ cd ns-allinone-2.34/
$ patch -p0 < otcl_ns234_gcc-4.4.patch
https://drive.google.com/file/d/0B7S...ew?usp=sharing
$ export CC=gcc-4.4 CXX=g++-4.4 && install
$ cd ns-2.34/
$ cp ns ns-new-name
$ sudo cp ns-new-name /usr/local/bin/

-

knudfl 10-29-2014 03:02 AM

Add #6 :
Quote:

how the "%" is appearing in command prompt when typing ns ?
? Could you have done $ sudo apt-get install ns
.... Then you will also get an extra 'ns' which can produce » % «.

banerjee 10-29-2014 04:33 AM

Quote:

Originally Posted by ;5261202
Add #6 :

? Could you have done $ sudo apt-get install ns
.... Then you will also get an extra 'ns' which can produce » % «.

YOU ARE RIGHT knudfl!!! I did that before using ns-allinone-2.34. how can I remove that now? will it create any problem? I have removed the ns related texts from the .bashrc file. still the '%' appears. is it sufficient to remove the ns-allinone-2.34 directory to remove the installed ns?

knudfl 10-29-2014 04:49 AM

← #8 .

You can of course delete whatever you want.
But : There is no reason really to delete an "ns-allinone-2.xx".
REPEAT:
You can have an infinite number of ns-allinone-2.xx installs on one OS.
( I have about 110 different patched ns-allinone-2`s.)

You can locate the other 'ns' with $ which ns
... and then rename ns to ns-orig.
(You may need ns-orig later for running default tcl scripts :
A changed version may not be usable for tcl/ex/<examples.tcl>.)

Repeat 2 :
Renaming is the safe solution, when you have more than one ns2.

-

banerjee 10-29-2014 06:35 AM

Quote:

Originally Posted by knudfl (Post 5261242)
← #8 .

You can of course delete whatever you want.
But : There is no reason really to delete an "ns-allinone-2.xx".
REPEAT:
You can have an infinite number of ns-allinone-2.xx installs on one OS.
( I have about 110 different patched ns-allinone-2`s.)

You can locate the other 'ns' with $ which ns
... and then rename ns to ns-orig.
(You may need ns-orig later for running default tcl scripts :
A changed version may not be usable for tcl/ex/<examples.tcl>.)

Repeat 2 :
Renaming is the safe solution, when you have more than one ns2.

-

THANK YOU FRIEND..I HAVE INSTALLED NS-2.34, VALIDATED AND FOUND ns file in ns-2.34 directory. thanks a lot for your quick effective responses.

banerjee 11-05-2014 06:31 AM

Quote:

Originally Posted by knudfl (Post 5261242)
← #8 .

You can of course delete whatever you want.
But : There is no reason really to delete an "ns-allinone-2.xx".
REPEAT:
You can have an infinite number of ns-allinone-2.xx installs on one OS.
( I have about 110 different patched ns-allinone-2`s.)

You can locate the other 'ns' with $ which ns
... and then rename ns to ns-orig.
(You may need ns-orig later for running default tcl scripts :
A changed version may not be usable for tcl/ex/<examples.tcl>.)

Repeat 2 :
Renaming is the safe solution, when you have more than one ns2.

-

Dear knudfl,
I find my 'ns' file disappear from ns-2.34 directory. what should i do? re-install ns or some other process is there? all other files remain as they were, only 'ns' not found.

knudfl 11-05-2014 07:25 AM

# 10 .
Quote:

FOUND ns file in ns-2.34 directory
Make an install, and a backup :
$ sudo make install
( 'make install' will copy ns to /usr/local/bin/ ).
$ cp ns ns-new-name
$ sudo cp ns-new-name /usr/local/bin/

Removing the Ubuntu `ns package' : $ sudo apt-get remove ns


# 11 .
If you have no backup (Also see post #6: cp ns ns-new-name ),
.. then please run $ ./install
.. in the top directory "ns-allinone-2.34/".

-

banerjee 11-06-2014 02:37 PM

problem in trying "MyPing" on ns2.34
 
Quote:

Originally Posted by knudfl (Post 5264920)
# 10 .

Make an install, and a backup :
$ sudo make install
( 'make install' will copy ns to /usr/local/bin/ ).
$ cp ns ns-new-name
$ sudo cp ns-new-name /usr/local/bin/

Removing the Ubuntu `ns package' : $ sudo apt-get remove ns


# 11 .
If you have no backup (Also see post #6: cp ns ns-new-name ),
.. then please run $ ./install
.. in the top directory "ns-allinone-2.34/".

-

dear knudfl,
i am trying my own ping "MyPing" on ns2.34. make is successful. myping.o created. but while running the tcl-script, it is giving the following error:

invalid command name "Agent/MyPing"
while executing
"Agent/MyPing instproc recv {from rtt} {
$self instvar node_
puts "node [$node_ id] received ping answer from \
$from with round-trip-t..."
(file "myping.tcl" line 27)

could you please suggest any solution?

knudfl 11-06-2014 04:36 PM

← #13 .
Quote:

my own ping "MyPing" on ns2.34. 'make' is successful. myping.o created.
1) Assume `myping.o' compiled into a new executable 'ns',
together with ...
2) the edited { tcl/ns-agent.tcl?, tcl/ns-default.tcl?, tcl/ns-lib.tcl },
I.e. it all depends on which code you are using.

* This "Ping example" has a "configuration file.tcl" :
. http://www.isi.edu/nsnam/ns/tutorial/nsnew.html
. http://www.isi.edu/nsnam/ns/tutorial/examples/ping.cc


P.S. : Please do not quote entire posts. A one word reference will do.

-

banerjee 11-07-2014 09:32 AM

Quote:

Originally Posted by knudfl (Post 5265840)
← #13 .


2) the edited { tcl/ns-agent.tcl?, tcl/ns-default.tcl?, tcl/ns-lib.tcl },
I.e. it all depends on which code you are using.


-

i took the help from the marc grei's tutorials as you mentioned. i made changes in common/packet.h, tcl/ns-default.tcl as instructed in the tutorial. but still get the error. is it needed to modify tcl/ns-agent.tcl? tcl/ns-lib.tcl? what should i write threre?

knudfl 11-07-2014 10:44 AM

# 15 .

`ns-agent.tcl' :
No guaranty that is causes any changes,
you can try adding a new agent, like the AODV text (line 192) :
Agent/AODV set sport_ 0
Agent/AODV set dport_ 0


Quote:

made changes in common/packet.h, tcl/ns-default.tcl
Did you compile the edited ns-default.tcl into a new 'ns' ?
Also : Be sure you are using the right 'ns', like : $ cp ns ns-ping3
... And use that copy for the simulation : $ ns-ping3 ping-banerjee.tcl


`ns-lib.tcl' :
In ns-lib.tcl you can add the tcl configuration file :
source ns-ping.tcl


-

banerjee 11-10-2014 06:28 AM

dear knudfl,
I want to develop a multipath routing strategy for manet. i will split my message and put the slices on different paths from the source. where to start the from? how do i split a packet? how to maintain multiple paths? could you please help?

knudfl 11-10-2014 06:43 AM

← #17 .

Don't know. Sorry.

Multipath info ...
. http://code.google.com/p/multipath-d...ting-protocol/

Google .. ns2 Multipath Routing protocol ..

http://code.google.com/p/multipath-d...ting-protocol/
> http://code.google.com/p/multipath-d...downloads/list

http://wpage.unina.it/marcello.caleffi/ns2/mdart.html >>> ns234 >>>
wget http://wpage.unina.it/marcello.caleffi/ns2/mdart.diff

" aomdv-code-ns2 it s a multipath aodv protocol used in NS2.:
http://en.pudn.com/downloads201/sour...947190_en.html "

-

banerjee 11-18-2014 12:10 PM

invalid command name "Agent/MyPing"

following are the myping.h, myping.cc and myping.tcl files i have written. i have made changes in packet.h, ns-default.tcl, Makefile. still i am getting error----
invalid command name "Agent/MyPing"
while executing
"Agent/MyPing instproc recv {from rtt} {
$self instvar node_
puts "node [$node_ id] received ping answer from \
$from with round-trip-t..."
(file "myping.tcl" line 27)

could anyone please help me out. i cannot find a way out.

myping.h file
Code:


#ifndef ns_myping_h
#define ns_mying_h

#include "agent.h"
#include "tclcl.h"
#include "packet.h"
#include "address.h"
#include "ip.h"

struct hdr_myping{
        char ret;
        double send_time;
};

class MyPingAgent : public Agent{
        public:
          MyPingAgent();
          int command(int argc, const char*const* argv);
          void recv(Packet*, Handler*);
        protected:
          int off_myping_;
          int off_ip_;
};

#endif






myping.cc file

Code:

#include "myping/myping.h"


static class MyPingHeaderClass : public PacketHeaderClass {
public:
  MyPingHeaderClass() : PacketHeaderClass("PacketHeader/MyPing",sizeof(hdr_myping)) {}

} class_mypinghdr;

static class MyPingClass : public TclClass{
public:
  MyPingClass() : TclClass("Agent/MyPing") {}
  TclObject* create(int, const char*const*) {
        return(new MyPingAgent());
}

} class_myping;

MyPingAgent::MyPingAgent() : Agent(PT_MYPING)
{
  bind("packetSize_", &size_);
  bind("off_myping_", &off_myping_);
}

int MyPingAgent::command(int argc, const char*const* argv)
{
  if (argc == 2) {
    if (strcmp(argv[1], "send") == 0) {
      // Create a new packet
      Packet* pkt = allocpkt();
      // Access the Ping header for the new packet:
      hdr_myping* hdr = (hdr_myping*)pkt->access(off_myping_);
      //hdr_myping* hdr = hdr_myping::access(pkt);
      // Set the 'ret' field to 0, so the receiving node knows
      // that it has to generate an echo packet
      hdr->ret = 0;
      // Store the current time in the 'send_time' field
      hdr->send_time = Scheduler::instance().clock();
      // Send the packet
      send(pkt, 0);
      // return TCL_OK, so the calling function knows that the
      // command has been processed
      return (TCL_OK);
    }
  }
  // If the command hasn't been processed by PingAgent()::command,
  // call the command() function for the base class
  return (Agent::command(argc, argv));
}


void MyPingAgent::recv(Packet* pkt, Handler*)
{
  // Access the IP header for the received packet:
  off_ip_=hdr_ip::offset();
  hdr_ip* hdrip = (hdr_ip*)pkt->access(off_ip_);
  // Access the Ping header for the received packet:
  hdr_myping* hdr = (hdr_myping*)pkt->access(off_myping_);
  // Is the 'ret' field = 0 (i.e. the receiving node is being pinged)?
  if (hdr->ret == 0) {
    // Send an 'echo'. First save the old packet's send_time
    double stime = hdr->send_time;
    // Discard the packet
    Packet::free(pkt);
    // Create a new packet
    Packet* pktret = allocpkt();
    // Access the Ping header for the new packet:
    hdr_myping* hdrret = (hdr_myping*)pktret->access(off_myping_);
    // Set the 'ret' field to 1, so the receiver won't send another echo
    hdrret->ret = 1;
    // Set the send_time field to the correct value
    hdrret->send_time = stime;
    // Send the packet
    send(pktret, 0);
  } else {
    // A packet was received. Use tcl.eval to call the Tcl
    // interpreter with the ping results.
    // Note: In the Tcl code, a procedure 'Agent/Ping recv {from rtt}'
    // has to be defined which allows the user to react to the ping
    // result.
    char out[100];
    // Prepare the output to the Tcl interpreter. Calculate the round
    // trip time
    sprintf(out, "%s recv %d %3.1f", name(),
            (hdrip->src_).addr_,
            (Scheduler::instance().clock()-hdr->send_time) * 1000);
    Tcl& tcl = Tcl::instance();
    tcl.eval(out);
    // Discard the packet
    Packet::free(pkt);
  }
}


myping.tcl file

Code:

#Create a simulator object
set ns [new Simulator]

#Open a trace file
set nf [open out.nam w]
$ns namtrace-all $nf

#Define a 'finish' procedure
proc finish {} {
        global ns nf
        $ns flush-trace
        close $nf
        exec nam out.nam &
        exit 0
}

#Create three nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]

#Connect the nodes with two links
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
$ns duplex-link $n1 $n2 1Mb 10ms DropTail

#Define a 'recv' function for the class 'Agent/MyPing'
Agent/MyPing instproc recv {from rtt} {
        $self instvar node_
        puts "node [$node_ id] received ping answer from \
              $from with round-trip-time $rtt ms."
}

#Create two ping agents and attach them to the nodes n0 and n2
set p0 [new Agent/MyPing]
$ns attach-agent $n0 $p0

set p1 [new Agent/MyPing]
$ns attach-agent $n2 $p1

#Connect the two agents
$ns connect $p0 $p1

#Schedule events
$ns at 0.2 "$p0 send"
$ns at 0.4 "$p1 send"
$ns at 0.6 "$p0 send"
$ns at 0.6 "$p1 send"
$ns at 1.0 "finish"

#Run the simulation
$ns run


banerjee 11-18-2014 10:20 PM

Quote:

Originally Posted by knudfl (Post 5266224)
# 15 .

`ns-agent.tcl' :

-

after i type make clean and make to compile my own file "myping/myping.cc", i get -> "make[1]: Nothing to be done for `all'"------is it any error?

knudfl 11-19-2014 07:34 AM

← #20 .
Quote:

Nothing to be done for `all'"
Means : Everything is OK.
Happens when you run 'make' for the second time.
I.e. the first 'make' is run by the './install' command.
* Besides that this "non issue" has been discussed before :
You will get 1,100,000,000 hits with Google, Nothing to be done for `all'"


← #19 .
Please edit post #19 to use 'code tags'
. http://www.linuxquestions.org/questi....php?do=bbcode
. http://www.linuxquestions.org/questi...gs-4175464257/
I.e. type [/code] at code end, and [code] at code start.
* And : You will have to replace the "code text" with the real code.

* Editing : The 'Edit' button.

-

banerjee 11-19-2014 09:57 PM

Quote:

Originally Posted by knudfl (Post 5271884)
← #20 .


← #19 .
Please edit post #19 to use 'code tags'

-

i have edited #19. please check it and suggest solution....

knudfl 11-19-2014 11:24 PM

← #22 .

Your tcl file is OK.
Runs perfect with the stock ping in e.g. ns-2.34, ns-2.35,
when all Agent/MyPing was edited to Agent/Ping.

Please have a look at the default ns-2.xx/apps/{ ping.cc, ping.h }.

About `tcl/lib/{files.tcl} :
'Ping' is present in ns-default.tcl, ns-packet.tcl. Example, ns-2.34 :
Code:

ns-default.tcl:830:Agent/Ping set packetSize_ 64


ns-packet.tcl:155:      Ping    # Ping
ns-packet.tcl:267:#    { Ping off_ping_ }

* The numbers are the line numbers.

-

knudfl 11-19-2014 11:38 PM

1 Attachment(s)
Add #23 : "All Ping in ns-2.34".

$ cd ns-2.34
$ grep -Rn Ping *

The result is attached as all-ping_ns234.txt.gz.txt .
Omitted is : ping.h, ping.cc, tcl/test/, validate.out .

* Rename all-ping_ns234.txt.gz.txt to all-ping_ns234.txt.gz ,
then you can unpack the file.
-

banerjee 11-20-2014 01:18 AM

Quote:

Originally Posted by knudfl (Post 5272271)
← #22 .


when all Agent/MyPing was edited to Agent/Ping.

-


that's true. but if i write my own "ping" protocol as "MyPing" then the problem happens. this is i am doing for testing. i want to write my own algorithm in ns. so, i took the "Ping" as an example to see how the things are done. could you please suggest that what modification I need to make so that my "MyPing" protocol also works as "Ping"?

banerjee 11-23-2014 02:33 AM

when i run ./validate, i get the following error. there were multiple similar kind of errors indicated. what is the problm and how to solve this?
Quote:

global errorInfo
error "class $..."
(procedure "new" line 3)
invoked from within
"new Test/$test $topo"
(procedure "TestSuite" line 40)
(TestSuite runTest line 40)
invoked from within
"TestSuite runTest"
(file "test-suite-simple.tcl" line 1824)
Test output differs from reference output
Diagnose with: diff test-output-simple/tahoe1Bytes.test test-output-simple/tahoe1Bytes
Or see URL "http://www.isi.edu/nsnam/ns/ns-problems.html".


knudfl 11-23-2014 06:06 AM

← #26 .

A clean ns-2.xx will often fail some tests.
And : If it's a 64bits OS, some tests will always fail.

Editing C++ files, or adding a patch with a new protocol :
Some more, or many tests will / can fail at './validate'.

* Validate is not that important.
The protocols you want to use, are "always" OK.
I.e. I have never seen an added protocol fail,
even with a lot of failed tests.

*** Validate can be skipped, and/or errors can be ignored.

-

banerjee 11-23-2014 12:37 PM

i had to ./configure again...but after i do this get the following:
Code:

ln: failed to create symbolic link `ns': File exists
ln: failed to create symbolic link `nam': File exists
Please compile your xgraph separately.
ln: failed to create symbolic link `sgb2ns': File exists
ln: failed to create symbolic link `sgb2hierns': File exists
ln: failed to create symbolic link `sgb2comns': File exists
ln: failed to create symbolic link `itm': File exists
ln: failed to create symbolic link `sgb2alt': File exists
ln: failed to create symbolic link `edriver': File exists

Ns-allinone package has been installed successfully.
Here are the installation places:
tcl8.4.18:        /home/partha/program/ns-allinone-2.34/{bin,include,lib}
tk8.4.18:                /home/partha/program/ns-allinone-2.34/{bin,include,lib}
otcl:                /home/partha/program/ns-allinone-2.34/otcl-1.13
tclcl:                /home/partha/program/ns-allinone-2.34/tclcl-1.19
ns:                /home/partha/program/ns-allinone-2.34/ns-2.34/ns
nam:        /home/partha/program/ns-allinone-2.34/nam-1.14/nam
gt-itm:  /home/partha/program/ns-allinone-2.34/itm, edriver, sgb2alt, sgb2ns, sgb2comns, sgb2hierns

----------------------------------------------------------------------------------

Please put /home/partha/program/ns-allinone-2.34/bin:/home/partha/program/ns-allinone-2.34/tcl8.4.18/unix:/home/partha/program/ns-allinone-2.34/tk8.4.18/unix
into your PATH environment; so that you'll be able to run itm/tclsh/wish/xgraph.

IMPORTANT NOTICES:

(1) You MUST put /home/partha/program/ns-allinone-2.34/otcl-1.13, /home/partha/program/ns-allinone-2.34/lib,
    into your LD_LIBRARY_PATH environment variable.
    If it complains about X libraries, add path to your X libraries
    into LD_LIBRARY_PATH.
    If you are using csh, you can set it like:
                setenv LD_LIBRARY_PATH <paths>
    If you are using sh, you can set it like:
                export LD_LIBRARY_PATH=<paths>

(2) You MUST put /home/partha/program/ns-allinone-2.34/tcl8.4.18/library into your TCL_LIBRARY environmental
    variable. Otherwise ns/nam will complain during startup.


After these steps, you can now run the ns validation suite with
cd ns-2.34; ./validate

For trouble shooting, please first read ns problems page
http://www.isi.edu/nsnam/ns/ns-problems.html. Also search the ns mailing list archive
for related posts.

what these mean?

knudfl 11-23-2014 01:02 PM

← #28 .
Quote:

what .. these mean ?
Nothing. Unless you are using a "University Computer",
and have no write permissions to /usr/.
* The executable 'ns' is hard coded to know the location of it´s libraries,
so at large the "year 1999 text" about *PATH´s makes little or no sense.

Assume a computer owned by you, and can do :
$ cd ns-2.34/
$ cp ns ns-backup ( Or any special name you want, e.g. ns-ping.)
$ sudo make install ('make install' will copy ns to /usr/local/bin/).
$ sudo cp ns-backup /usr/local/bin/

-

banerjee 11-24-2014 03:31 AM

I edited mkaefile, makefile.in and Makefile.vc and used ./configure. unfortunately i lost my ns file and copied it from /usr/local/bin. now, when i am using make i am getting the following error
Code:

In file included from mac/mac-802_11Ext.cc:66:0:
mac/mac-802_11Ext.h: In member function ‘u_int32_t PHY_MIBExt::getHdrLen11()’:
mac/mac-802_11Ext.h:175:19: error: expected primary-expression before ‘struct’
mac/mac-802_11Ext.h:175:41: error: ‘dh_body’ was not declared in this scope
mac/mac-802_11Ext.h:175:51: error: ‘offsetof’ was not declared in this scope
mac/mac-802_11Ext.h:177:3: warning: control reaches end of non-void function [-Wreturn-type]
make: *** [mac/mac-802_11Ext.o] Error 1

please help

knudfl 11-24-2014 04:59 AM

← #30 .

Always make at least one backup of ns to ns-protocol-name.
* All simulations (except a few that are using a shell script)
.. will work with $ ns-name file.tcl
* Copy your backup to e.g. /home/<user>/binaries-ns/.
( I have ~130 different 'ns' executables in the backup folder,
.. and the same in /usr/local/bin/ ).
* Backups : Make a backup to cdrom or DVD.


No backup (that works) : $ cd ns-allinone/
And rerun ./install : $ export CC=gcc-4.4 CXX=g++-4.4 && ./install

Editing Makefile.vc : Not required. Is a Windows© file.
.. And I assume that you are still using Ubuntu 12.04 ?

-

banerjee 11-24-2014 06:29 AM

Quote:

Originally Posted by knudfl (Post 5273899)
← #28 .


$ sudo cp ns-backup /usr/local/bin/

-

Thank you knudfl; my program ran. but there is a warning "warning: no class variable Agent/MyPing::off_myping_"--what does it mean?

knudfl 11-24-2014 07:27 AM

← #32 .
Quote:

"warning: no class variable Agent/MyPing : off_myping_"
Don't know.
But : Warnings are not errors, and can usually be ignored.
* Warnings are "informational text".



-

banerjee 11-24-2014 10:41 AM

Quote:

Originally Posted by knudfl (Post 5274224)
← #32 .

-

i am doing the same thing on my laptop. following are the things i have done. but here i am getting the error
Code:


partha@ubuntu:~/program/ns-allinone-2.34/ns-2.34$ cp ns ns-ping
partha@ubuntu:~/program/ns-allinone-2.34/ns-2.34$ sudo make install
[sudo] password for partha:
for d in /usr/local/man/man1; do \
                if [ ! -d $d ]; then \
                        mkdir -p $d ;\
                fi;\
        done
/usr/bin/install -c -m 755 ns /usr/local/bin
/usr/bin/install -c -m 644 ns.1 /usr/local/man/man1
partha@ubuntu:~/program/ns-allinone-2.34/ns-2.34$ sudo cp ns-ping /usr/local/bin
partha@ubuntu:~/program/ns-allinone-2.34/ns-2.34$ cd myping
partha@ubuntu:~/program/ns-allinone-2.34/ns-2.34/myping$ ns-ping myping.tcl
can't read "useasim_": no such variable
    while executing
"if { $useasim_ == 1 } {
set slink_($sid:$did) $self
}"
    (procedure "_o3" line 6)
    (Simulator simplex-link line 6)
    invoked from within
"_o3 simplex-link _o10 _o13 1Mb 10ms DropTail"
    ("eval" body line 1)
    invoked from within
"eval $self simplex-link $n1 $n2 $bw $delay $type $args"
    (procedure "_o3" line 8)
    (Simulator duplex-link line 8)
    invoked from within
"$ns duplex-link $n0 $n1 1Mb 10ms DropTail"
    (file "myping.tcl" line 23)

please suggest something

banerjee 03-17-2015 04:53 AM

friends, I am trying to install ns 2.27 on ubuntu 12.04 and getting error :

banerjee 03-17-2015 06:17 AM

problen in installation of ns 2.27 on ubuntu 12.04
 
============================================================
* Testing for Cygwin environment
============================================================
Cygwin not detected, proceeding with regular install.
============================================================
* Build XGraph-12.1
============================================================
loading cache ./config.cache
checking for a BSD compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... missing
checking if malloc debugging is wanted... no
checking for gcc... gcc41
checking whether the C compiler (gcc41 ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.
make: *** No targets specified and no makefile found. Stop.
Can not create xgraph; But xgraph is an optional package, continuing...
============================================================
* Build CWeb
============================================================
Making cweb
gcc -g -c -o ctangle.o ctangle.c
ctangle.w:75:12: warning: conflicting types for built-in function ‘strlen’ [enabled by default]
gcc -g -DCWEBINPUTS=\"/usr/local/lib/cweb\" -c common.c
common.w:1409:12: warning: conflicting types for built-in function ‘strlen’ [enabled by default]
common.w: In function ‘fatal’:
common.w:1176:1: warning: format not a string literal and no format arguments [-Wformat-security]
gcc -g -o ctangle ctangle.o common.o
gcc -g -c -o cweave.o cweave.c
cweave.w:79:12: warning: conflicting types for built-in function ‘strlen’ [enabled by default]
cweave.w: In function ‘print_cat’:
cweave.w:1739:1: warning: format not a string literal and no format arguments [-Wformat-security]
gcc -g -o cweave cweave.o common.o
ln: failed to create symbolic link `cweave': File exists
ln: failed to create symbolic link `ctangle': File exists
============================================================
* Build Stanford GraphBase
============================================================
Making sgb
gcc41 -g -I/usr/local/sgb/include -DDATA_DIRECTORY=\"/usr/local/sgb/data/\" -c gb_io.c
make: gcc41: Command not found
make: *** [gb_io.o] Error 127
Unable to create sgb library, but it's optional, so continuing...
============================================================
* Build GT-ITM
============================================================
sgb lib not found. gt-itm & sgb2ns could not be installed. Continuing..
============================================================
* Build zlib
============================================================
Building static library libz.a version 1.1.4 with gcc41.
Checking for unistd.h... No.
Checking for errno.h... No.
Checking for mmap support... No.
gcc41 -O -DNO_ERRNO_H -c -o example.o example.c
make: gcc41: Command not found
make: *** [example.o] Error 127
Zlib make failed, but it's optional Continue ...
============================================================
* Build tcl8.4.5
============================================================
loading cache ./config.cache
checking whether to use symlinks for manpages... no
checking compression for manpages... no
checking for gcc... gcc41
checking whether the C compiler (gcc41 ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.
tcl8.3.2 configuration failed! Exiting ...
Tcl is not part of the ns project. Please see www.Scriptics.com
to see if they have a fix for your platform.

knudfl 03-18-2015 02:59 PM

<<< ref. #35 :
Quote:

I am trying to install ns 2.27 on ubuntu 12.04 and getting the following error :
checking whether the C compiler (gcc41 ) works... no
Well, then no reason to use two posts, and 150 lines for telling that.
Please edit posts #35 and #36 : Delete surplus text.
Editing : The 'Edit' button.

You will have to specify your Ubuntu OS ( By every question ) :
a) $ uname -m
b) version ( 12.04 ? )

-

banerjee 03-19-2015 03:40 AM

Quote:

Originally Posted by knudfl (Post 5334263)
<<< ref. #35 :

a) $ uname -m
b) version ( 12.04 ? )

-

i686

knudfl 03-19-2015 06:30 AM

<<< ref. #38, #36 : Code Tags for post #36, please.

Installing the compilers for Ubuntu 12.04 - i686 / ns-2.27 :
A) Download gcc41-compat-"1204" and g++41-compat :
. https://docs.google.com/open?id=0B7S...lNURldUenRyb3c
. https://docs.google.com/open?id=0B7S...hjMjljN2M2MGU4
B) Install the compilers :
sudo dpkg -i gcc41-compat-4.1.2.ubu1204_i386.deb g++41-compat-4.1.2_i386.deb
C)
cd /usr/bin/
sudo ln -s ../gcc41/bin/gcc41
sudo ln -s ../gcc41/bin/g++41


Building ns-2.27 :
Start from scratch in /home/name/<new-folder>/. (not ~/Desktop/, please)
tar xvf ns-allinone-2.27.tar.gz
patch -p0 < ns-2.27-gcc410.patch ( outside ns-allinone-2.27/ ! )
https://drive.google.com/file/d/0B7S...ew?usp=sharing
cd ns-allinone-2.27/
export CC=gcc41 CXX=g++41 && ./install


-

banerjee 03-19-2015 07:02 AM

ref #39:

Thank you. I got it installed. thank you

banerjee 03-19-2015 07:46 AM

ref #39:

I need to incorporate the network coding file netcod_ns2.zip in ns 2.27. The implementation steps mentioned as follows:

STEP 1: Install NS2 2.27

STEP 2: Copy the file network-coding.tar.gz and INSTALL_NC in ./ns-allinone-2.27/ns-2.27

STEP 3: From ./ns-allinone-2.27/ns-2.27/ digit ./INSTALL_NC


BUT, when I am typing digit ./INSTALL_NC---it is not working....please help

knudfl 03-19-2015 09:08 AM

<<< ref. #41.

»» when I am typing digit ./INSTALL_NC---it is not working ««.
The command is : $ perl INSTALL_NC
... May have worked some years ago ? 2009 ?


The 2015 build method for Ubuntu 12.04-i686 / ns227 + NetworkCoding :
Start from scratch in /home/name/<another-new-folder>/.
tar xvf ns-allinone-2.27.tar.gz
patch -p0 < ns-2.27-gcc410.patch
cd ns-allinone-2.27/
patch -p0 < NetworkCoding_ns227.patch
https://drive.google.com/file/d/0B7S...ew?usp=sharing
export CC=gcc41 CXX=g++41 && ./install
cd ns-2.27/
sudo make install
cp ns ns-netw-cod ( This is your {NetworkCoding 'ns'} backup )
sudo cp ns-netw-cod /usr/local/bin/
... And simulations can be done with $ ns-netw-cod <file>.tcl


-

banerjee 03-20-2015 02:50 AM

ref. #42

Quote:

Originally Posted by knudfl (Post 5334620)
export CC=gcc41 CXX=g++41 && ./install
cd ns-2.27/
sudo make install
cp ns ns-netw-cod ( This is your {NetworkCoding 'ns'} backup )
sudo cp ns-netw-cod /usr/local/bin/
... And simulations can be done with $ ns-netw-cod <file>.tcl
-

Thank you knudfl. now I have two questions:

1. Don't I need to validate the ns?

2. when I am using "ns-netw-cod randomnetNetF_802.tcl", I am getting the error: "could not open ./Trace/out.tr w"? why is it so?

knudfl 03-20-2015 04:39 AM

<<< ref. #43.

Add 1. About validate :
Not really required. Will just show the usual output.
And if anything unusual : Nothing you can do.
As long as the protocols you want to use are working fairly OK :
No reason to worry about some few protocols that you will never use.

Add 2. Missing directories / files : Please create those yourself.
I.e. create a folder "Trace", etc. etc. traffic files, movement files.


-

banerjee 03-23-2015 02:08 PM

how to link matlab function with tcl programming?....

banerjee 03-23-2015 03:15 PM

dear knudfl, out.tr file remains empty...attached is the tcl file.....please suggest solution





Code:

# ======================================================================

# Define options

# ======================================================================

set val(chan)          Channel/WirelessChannel    ;# channel type

set val(prop)          Propagation/TwoRayGround  ;# radio-propagation model

set val(netif)          Phy/WirelessPhy            ;# network interface type

set val(mac)            Mac/MacI              ;# MAC type

set val(ifq)            Queue/DropTail/PriQueue    ;# interface queue type

set val(ll)            LL                        ;# link layer type

set val(ant)            Antenna/OmniAntenna        ;# antenna model

set val(ifqlen)        50                        ;# max packet in ifq

set val(rp)            NCR                        ;# routing protocol

set val(nn)            20                        ;# number of mobilenodes

set val(x)                1250

set val(y)                1250

set val(stop_sim)        50

set val(print)                80

set val(flooding)        1

set val(probabilistic_nc) 1

set val(force_first)        1

set val(send_count)        1

set val(statistics)        1

set val(gen_mngt)        5

set val(pseudo)        0

set val(sc)                1

set val(dist)                250

set data_size                8

set data_rate                12Kb

set step                0.004

set BROADCAST                -1





# Setting input arguments

if {[llength $argv]>0} {

        set val(send_count) [lindex $argv 0]; # it si an integer

}

if {[llength $argv]>1} {

        set val(sc) [lindex $argv 1]; # it si an integer

}

if {[llength $argv]>2} {

        set val(nn) [lindex $argv 2];  # Number of nodes

}

if {[llength $argv]>3} {

        set val(dist) [lindex $argv 3];  # Number of nodes

}

#if {[llength $argv]>3} {

#        set val(x) [lindex $argv 3]; # x size

#}

#if {[llength $argv]>4} {

#        set val(y) [lindex $argv 4]; # y size

#}

#if {[llength $argv]>5} {

#        set val(probabilistic_routing) [lindex $argv 5];  # Probabilistic routing 0-no, 1-yes

#}

#if {[llength $argv]>6} {

#        set val(force_first) [lindex $argv 6]; # Force first: 0-no, 1-yes

#}

#if {[llength $argv]>7} {

#        set val(statistics) [lindex $argv 7]; # set to 1 to collect statistic

#}

#if {[llength $argv]>8} {

#        set val(gen_mngt) [lindex $argv 8]; # an integer

#}





# NCR parameters

Agent/NCR set probabilistic_nc $val(probabilistic_nc)

Agent/NCR set force_first $val(force_first)

Agent/NCR set send_count $val(send_count)

Agent/NCR set statistics $val(statistics)

Agent/NCR set generation_management $val(gen_mngt)

Agent/NCR set flooding $val(flooding)

Agent/NCR set pseudo $val(pseudo)

Agent/NCR set scenario $val(sc)

Mac/802_11 set send_count $val(send_count)

Mac/802_11 set flooding $val(flooding)

Mac/802_11 set RTSThreshold_ 2000



Mac/MacI set send_count $val(send_count)

Mac/MacI set flooding $val(flooding)

Mac/MacI set range_ 250



# ======================================================================

# Main Program

# ======================================================================



#

# Initialize Global Variables

#

set ns_                [new Simulator]

#set tracefd    [open ./Traces/SquareNet_$val(nn)_$val(dist)_$val(send_count)_$val(sc).tr w]

set tracefd    [open out.tr w]

$ns_ trace-all $tracefd



# set up topography object

set topo      [new Topography]



#$topo load_flatgrid $val(x) $val(y)



# ------------

# Create God

# -----------

create-god $val(nn)





# ------------

# Configure the nodes

# -----------



set chan_1_ [new $val(chan)]



        $ns_ node-config -adhocRouting $val(rp) \

                        -llType $val(ll) \

                        -macType $val(mac) \

                        -ifqType $val(ifq) \

                        -ifqLen $val(ifqlen) \

                        -antType $val(ant) \

                        -propType $val(prop) \

                        -phyType $val(netif) \

                        -channel $chan_1_ \

                        -topoInstance $topo \

                        -agentTrace OFF \

                        -routerTrace OFF \

                        -macTrace OFF \

                        -movementTrace OFF                       



puts "...Create nodes..."

                       

        for {set i 0} {$i < $val(nn) } {incr i} {

                set node_($i) [$ns_ node]

                set mac [$node_($i) getMac 0]

                $mac node $node_($i)

                $node_($i) random-motion 0                ;# disable random motion

        }



puts "..OK!"



# -----------------

# TOPOLOGY

# -----------------



puts "... Create topology..."



#ource "/home/partha/nsnetcode/ns-allinone-2.27/ns-2.27/network-coding/topology_examples/GridNetwork/gridNet_16_150.tcl"



$topo load_flatgrid 500.000000 500.000000

$node_(0) set X_ 0.000000

$node_(0) set Y_ 0.000000

$node_(0) set Z_ 0.000000

$node_(1) set X_ 150.000000

$node_(1) set Y_ 0.000000

$node_(1) set Z_ 0.000000

$node_(2) set X_ 300.000000

$node_(2) set Y_ 0.000000

$node_(2) set Z_ 0.000000

$node_(3) set X_ 450.000000

$node_(3) set Y_ 0.000000

$node_(3) set Z_ 0.000000

$node_(4) set X_ 0.000000

$node_(4) set Y_ 150.000000

$node_(4) set Z_ 0.000000

$node_(5) set X_ 150.000000

$node_(5) set Y_ 150.000000

$node_(5) set Z_ 0.000000

$node_(6) set X_ 300.000000

$node_(6) set Y_ 150.000000

$node_(6) set Z_ 0.000000

$node_(7) set X_ 450.000000

$node_(7) set Y_ 150.000000

$node_(7) set Z_ 0.000000

$node_(8) set X_ 0.000000

$node_(8) set Y_ 300.000000

$node_(8) set Z_ 0.000000

$node_(9) set X_ 150.000000

$node_(9) set Y_ 300.000000

$node_(9) set Z_ 0.000000

$node_(10) set X_ 300.000000

$node_(10) set Y_ 300.000000

$node_(10) set Z_ 0.000000

$node_(11) set X_ 450.000000

$node_(11) set Y_ 300.000000

$node_(11) set Z_ 0.000000

$node_(12) set X_ 0.000000

$node_(12) set Y_ 450.000000

$node_(12) set Z_ 0.000000

$node_(13) set X_ 150.000000

$node_(13) set Y_ 450.000000

$node_(13) set Z_ 0.000000

$node_(14) set X_ 300.000000

$node_(14) set Y_ 450.000000

$node_(14) set Z_ 0.000000

$node_(15) set X_ 450.000000

$node_(15) set Y_ 450.000000

$node_(15) set Z_ 0.000000





puts "...OK!"



# -------------------

# TRAFFIC

# -------------------



puts "...Create traffic..."



# All sources



  for {set i 0} {$i < $val(nn)} {incr i} { 



        set udp_($i) [new Agent/UDP]

        $ns_ attach-agent $node_($i) $udp_($i)



        set cbr_($i) [new Application/Traffic/CBR]

          $cbr_($i) set rate_ $data_rate

          $cbr_($i) set packetSize_ $data_size

          $cbr_($i) attach-agent $udp_($i)

       

        set null_($i) [new Agent/Null]

          $ns_ attach-agent $node_($i) $null_($i)       

  }



  #for {set i 0} {$i < $val(nn)} {incr i} { 

        #for {set k 0} {$k < $val(nn)} {incr k} {

                $ns_ connect $udp_(0) $null_([expr $val(nn) -1])

        #}

  #}



set rng1 [new RNG]

$rng1 seed 13113



set e [new RandomVariable/Uniform]

$e use-rng $rng1

#$e set avg_ 1; #sec

set start 2





for {set i 0} {$i < [expr $val(sc)*10 - $val(sc)]} {incr i} {

        set tmp [$e value]

}

   

  for {set i 0} {$i < $val(nn)} {incr i} {

        #set start_my [expr $start + [$e value]]

        set start_my [expr $start + [$e value]*0.1]

        set stop_my [expr $start_my + $step]

            $ns_ at $start_my "$cbr_($i) start"

            $ns_ at $stop_my "$cbr_($i) stop"

  }       



puts "...OK!"       



#-----------



# Print statistics



# ---------





for {set i 0} {$i < $val(nn) } {incr i} {

    $ns_ at $val(print) "$node_($i) print_stat";

}





#

# Tell nodes when the simulation ends

#

for {set i 0} {$i < $val(nn) } {incr i} {

    $ns_ at $val(stop_sim) "$node_($i) reset";

}

$ns_ at $val(stop_sim) "stop"

$ns_ at [expr $val(stop_sim) + 1] "puts \"NS EXITING...\" ; $ns_ halt"

proc stop {} {

    global ns_ tracefd

    $ns_ flush-trace

    close $tracefd

}



puts "Starting Simulation..."

$ns_ run


knudfl 03-23-2015 08:58 PM

1 Attachment(s)
Ref. post #46.

The text in post #46 isn't at all usable for simulation.
How did you manage to copy the text to get a (forbidden) extra linefeed for every line ?

I did some editing :
Removed the impossible linefeed's ( Now lines 226 .. 240 ).
And added some code : Lines 380 .. 392.
So you at least get some few lines in "out.tr".

The edited "banerjee.tcl" is attached as banerjee.tcl.bz2.txt .
Rename to banerjee.tcl.bz2 .
And decompress with $ bzip2 -d banerjee.tcl.bz2
-

banerjee 03-25-2015 07:13 AM

Quote:

Originally Posted by knudfl (Post 5336726)
Ref. post #46.

So you at least get some few lines in "out.tr".
And decompress with $ bzip2 -d banerjee.tcl.bz2
-

nam is not running...can you help?..could you please give some idea about why the out.tr file remained empty?

knudfl 03-25-2015 07:46 AM

Ref. post #48.
Quote:

nam is not running
Which 'nam' ?


Quote:

please give some idea about why the out.tr file remained empty
If you mean the faulty text in post #46 : Read post #47 : Not usable.
Read post #47 : Essential things / lines are missing.
Read the edited file banerjee.tcl

More simulation examples :
Please read the 23 examples in network-coding/tcl_script_example/*/*

-


All times are GMT -5. The time now is 03:46 PM.