ns-emulate.tcl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:1k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #
  2. # ns-emulate.tcl
  3. # defaults for nse [ns with emulation support]
  4. #
  5. if [TclObject is-class Network/Pcap/Live] {
  6. Network/Pcap/Live set snaplen_ 4096;# bpf snap len
  7. Network/Pcap/Live set promisc_ false;
  8. Network/Pcap/Live set timeout_ 0
  9. Network/Pcap/Live set optimize_ true;# bpf code optimizer
  10. Network/Pcap/Live set offset_ 0.0; # 
  11. Network/Pcap/File set offset_ 0.0; # ts for 1st pkt in trace file
  12. }
  13. if [TclObject is-class Agent/Tap] {
  14.     Agent/Tap set maxpkt_ 1600
  15. }
  16. if [TclObject is-class Agent/TCPTap] {
  17.     Agent/TCPTap set maxpkt_ 1600
  18. }
  19. if [TclObject is-class Agent/IcmpAgent] {
  20.     Agent/IcmpAgent set ttl_ 254
  21. }
  22. if [TclObject is-class Agent/IPTap] {
  23.     Agent/IPTap set maxpkt_ 1600
  24. }
  25. if [TclObject is-class ArpAgent] {
  26. ArpAgent set cachesize_ 10; # entries in arp cache
  27. ArpAgent instproc init {} {
  28. $self next
  29. }
  30. ArpAgent instproc config ifname {
  31. $self instvar net_ myether_ myip_
  32. set net_ [new Network/Pcap/Live]
  33. $net_ open readwrite $ifname
  34. set myether_ [$net_ linkaddr]
  35. set myip_ [$net_ netaddr]
  36. $net_ filter "arp and (not ether src $myether_) and 
  37. (ether dst $myether_ 
  38. or ether dst ff:ff:ff:ff:ff:ff)"
  39. $self cmd network $net_
  40. $self cmd myether $myether_
  41. $self cmd myip $myip_
  42. }
  43. }