Dear John,

I have just tested Nsclick with the patched NS-2.34 and a clean install of Click 1.7.0rc1, and the nsclick-simple-lan.tcl and nsclick-simple-wlan.tcl files both seem to work as they should.

I am running also running Ubuntu 8.04, but the 32-bit version. I configured Click with the following parameters:

--enable-nslick --enable-userlevel --disable-linuxmodule --enable-ip6 --enable-local --enable-wifi

Also, i first performed a make clean and a make distclean in both the click and the ns-allinone-2.34/ns-2.34 directories, sometimes this helps when encountering weird behavior in the applications.

I would suggest that you first try again with your specific Click 1.7 distribution, but entirely cleaned and reconfigured (also do not forget the make elemlist). If this doesn't work, you can try first with a vanilla click 1.7 release, to see if the problems lies in your system configuration, or the specific extra elements from the MORE project.

Regards,

Wim



John McKendry wrote:
I'm very glad that someone went to the trouble to create Click patches
for ns-2.34; thank you. Sadly, I am getting errors when I try to run
the nsclick test scripts with ns-2.34 built against click 1.7.0rc1.

:~/ns-allinone-2.34/ns-2.34/tcl/ex$ ns nsclick-simple-wlan.tcl
num_nodes is set 4
INITIALIZE THE LIST xListHead
nsclick-simple-lan.click:36: �u/myarpquerier :: ARPQuerier� input 1 unused
nsclick-simple-lan.click:37: �u/myarpresponder :: ARPResponder� input 0 unused
nsclick-simple-lan.click:54: �u/st...@11 :: Strip� input 0 unused
nsclick-simple-lan.click:62: �u/ippr...@15 :: IPPrint� input 0 unused
nsclick-simple-lan.click:68: �u/pr...@18 :: Print� input 0 unused
nsclick-simple-lan.click:43: �u/hostetherfil...@10 :: HostEtherFilter�
output 0 unused
nsclick-simple-lan.click:57: �u/getipaddr...@14 :: GetIPAddress� output 0 unused
Router could not be initialized!
nsclick-simple-lan.click: errors prevent router from initializing

 It's as if the Classifiers in the script are vanishing.

 I configured Click so:
./configure --prefix=/usr/local/click1.7 --disable-linuxmodule
--disable-roofnet --enable-wifi --disable-multicast --enable-userlevel
--enable-nsclick

 I used the ns-allinone-2.34 distribution. After applying the ns-2.34
patches, which applied without error, I ran ./install from the
~/ns-allinone-2.34 directory.

 The validate procedure runs all tests correctly, but all the
nsclick*.tcl scripts fail to initialize with errors similar to the one
above.

 This is a 64-bit Ubuntu 8.04 system. The only non-vanilla thing about
Click is that the userlevel directory contains elements from the MORE
Network Coding project from MIT -
http://people.csail.mit.edu/szym/more/README.html .

 After the first test I made one change to the nsclick-raw-wlan.click
file; I inserted a Queue between the IPPrint and ToDump elements on
the ToSimDevice(tap0, IP) path, because when I ran the file through
Clicky it complained thus:
/home/jfm/ns-allinone-2.34/ns-2.34/tcl/ex/clicky-raw-wlan.click:79:
 'ippr...@25' push output 0 connected to 'tod...@26' pull input 0

 This change didn't make a difference. (the file clicky-raw-wlan.click
is nsclick-raw-wlan.click with ToSimDevice and FromSimDevice replaced
by ToDevice and FromDevice to make Clicky happy.)

 For completeness, here is my nsclick-raw-wlan.click:
<included file>
elementclass DumbRouter {
  $myaddr, $myaddr_ethernet |
  class :: Classifier(12/0806 20/0001,12/0806 20/0002, -);
  mypackets :: IPClassifier(dst host $myaddr,-);
  myarpquerier :: ARPQuerier($myaddr,$myaddr_ethernet);
  myarpresponder :: ARPResponder($myaddr $myaddr_ethernet);
  rinfo::AvailableRates(DEFAULT 2 4 11 22)
  rateselection::MadwifiRate(RT rinfo,ACTIVE true,OFFSET 4);
  wlinfo :: WirelessInfo(SSID raw, BSSID 01:01:01:01:01:01,CHANNEL 2, IFID 0);
  ethout :: Queue 	
	-> WifiEncap(0x0, WIRELESS_INFO wlinfo)	
	-> rateselection
	-> PrintWifi(eth0_out)
	-> ToDump(out_eth0,PER_NODE 1,ENCAP 802_11)
	-> ExtraEncap()
	-> ToSimDevice(eth0);

  FromSimDevice(eth0,4096)
	-> ExtraDecap()
	-> filtertx::FilterTX()
	-> ToDump(in_eth0,PER_NODE 1,ENCAP 802_11)
	-> WifiDecap()
	-> Print(eth0,64)	
	-> HostEtherFilter($myaddr_ethernet)
	-> class;

  // transmission is fed back to the rate selection module	
  filtertx[1]
	-> [1]rateselection;

  // ARP queries from other nodes go to the ARP responder module
  class[0] -> myarpresponder;

  // ARP responses go to our query module
  class[1] -> [1]myarpquerier;

  // All other packets get checked to see if they're meant for us
  class[2]				
	-> Strip(14)
	-> CheckIPHeader
	-> MarkIPHeader
	-> GetIPAddress(16)
	-> mypackets;

  // Packets for us go to "tap0" which sends them to the kernel
  mypackets[0]
	-> IPPrint(tokernel) -> Queue
	-> ToDump(tokernel,2000,IP,PER_NODE 1)
	-> ToSimDevice(tap0,IP);

  // Packets for other folks or broadcast packets get discarded
  mypackets[1]
	-> Print(discard,64)
	-> ToDump(discard,2000,PER_NODE 1)
	-> Discard;

  // Packets sent out by the "kernel" get pushed into the ARP query module
  FromSimDevice(tap0,4096)
	-> CheckIPHeader
	-> IPPrint(fromkernel)
	-> ToDump(fromkernel,2000,IP,PER_NODE 1)
	-> GetIPAddress(16)
	-> myarpquerier;

  // Both the ARP query and response modules send data out to
  // the simulated network device, eth0.
  myarpquerier
	-> Print(fromarpquery,64)
	-> ToDump(out_arpquery,PER_NODE 1)
	-> ethout;

  myarpresponder
	-> Print(arpresponse,64)
	-> ToDump(out_arprespond,PER_NODE 1)
	-> ethout;
}

u :: DumbRouter(eth0,eth0);
</included file>

 I think that's everything. I'm stuck and would be grateful for help.

Thanks,
John

On Thu, Sep 3, 2009 at 9:47 AM, Wim
Vandenberghe<[email protected]> wrote:
  
Hello,

i have created an update of the NSClick patch for NS-2.34, since the last
patch was developed for NS-2.30, which was released almost three years ago.
I created the new patch by manually going through every change defined by
the patch, and applied small adjustments, mostly just different context
lines, whenever necessary. Further testing and validation of the patched
NS-2.34 install also led to some minor changes to the patch, which can be
found in attachment.

It should be mentioned that I did not change all line number references,
only the amount of lines before and after for each patch hunk. Therefore the
output during patching mentions an offset for several parts of the patch.
This is not a problem, normally the patch can be successfully deployed on a
fresh ns-2.34 install. I tested with a clean NS-2.34 allinone installation
and a checkout of the Click 1.6 release taken somewhere in February 2009
(since we are using this checkout with some specific adjustments in our
current research project). The patch can be applied without any problems,
the patched NS compiles fine both with and without debug support, and when
running ./validate in the ns directory, it concludes that all tests passed.
When running the nsclick-simple-wlan.tcl script, the output also seems
normal.

However, i think that the Click functionality should be tested more
thoroughly before the patch can be seen as final. Therefore i would like to
ask if some members of the Click community would like to run some more
advanced NSClick scenarios that they are familiar with, and compare the
results for using the old patch with NS-2.30, and the new one with NS-2.34,
to see if everything is working as expected (especially combined with Click
1.7 instead of 1.6).

Another interesting topic is the fact that the NS-2.34 contains a profound
revision of the 802.11 MAC implementation, the 802_11ext implementation (see
http://dsn.tm.uni-karlsruhe.de/english/Overhaul_NS-2.php). It would be very
interesting if this MAC implementation would also support the integration
with Click. I am planning to have a look at this, but will not have the time
for this in the near future. Maybe someone else from the community would be
interested to have a look at it in the meanwhile?

Kind regards,

Wim

--
Wim Vandenberghe
Researcher
IBBT - IBCN - Ghent University
Gaston Crommenlaan 8 bus 201
9050 Gent, Belgium
E-mail: [email protected]
Tel. +32 9 33 14981

_______________________________________________
click mailing list
[email protected]
https://amsterdam.lcs.mit.edu/mailman/listinfo/click


    


-- 
Wim Vandenberghe
Researcher
IBBT - IBCN - Ghent University
Gaston Crommenlaan 8 bus 201
9050 Gent, Belgium
E-mail: [email protected]
Tel. +32 9 33 14981 
_______________________________________________
click mailing list
[email protected]
https://amsterdam.lcs.mit.edu/mailman/listinfo/click

Reply via email to