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

通讯编程

开发平台:

Visual C++

  1. #  Copyright (c) 1997 by the University of Southern California
  2. #  All rights reserved.
  3. #  This program is free software; you can redistribute it and/or
  4. #  modify it under the terms of the GNU General Public License,
  5. #  version 2, as published by the Free Software Foundation.
  6. #
  7. #  This program is distributed in the hope that it will be useful,
  8. #  but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10. #  GNU General Public License for more details.
  11. #
  12. #  You should have received a copy of the GNU General Public License along
  13. #  with this program; if not, write to the Free Software Foundation, Inc.,
  14. #  59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
  15. #
  16. #  The copyright of this module includes the following
  17. #  linking-with-specific-other-licenses addition:
  18. #
  19. #  In addition, as a special exception, the copyright holders of
  20. #  this module give you permission to combine (via static or
  21. #  dynamic linking) this module with free software programs or
  22. #  libraries that are released under the GNU LGPL and with code
  23. #  included in the standard release of ns-2 under the Apache 2.0
  24. #  license or under otherwise-compatible licenses with advertising
  25. #  requirements (or modified versions of such code, with unchanged
  26. #  license).  You may copy and distribute such a system following the
  27. #  terms of the GNU GPL for this module and the licenses of the
  28. #  other code concerned, provided that you include the source code of
  29. #  that other code when and as the GNU GPL requires distribution of
  30. #  source code.
  31. #
  32. #  Note that people who make modified versions of this module
  33. #  are not obligated to grant this special exception for their
  34. #  modified versions; it is their choice whether to do so.  The GNU
  35. #  General Public License gives permission to release a modified
  36. #  version without this exception; this exception also makes it
  37. #  possible to release a modified version which carries forward this
  38. #  exception.
  39. #
  40. # Author: Kannan Varadhan <kannan@isi.edu>
  41. # Version Date: Mon Jun 30 15:51:33 PDT 1997
  42. #
  43. # @(#) $Header: /cvsroot/nsnam/ns-2/tcl/mcast/srm-debug.tcl,v 1.4 2005/09/16 03:05:44 tomh Exp $ (USC/ISI)
  44. #
  45. SRM/request instproc compute-delay {} {
  46. $self instvar C1_ C2_ agent_ sender_ backoff_
  47. set unif [uniform 0 1]
  48. set rancomp [expr $C1_ + $C2_ * $unif]
  49. set dist [$agent_ distance? $sender_]
  50. set delay [expr $rancomp * $dist]
  51. set absdelay [expr $delay * $backoff_]
  52. $self evTrace Q INTERVALS C1 $C1_ C2 $C2_ d $dist i $backoff_
  53. U $unif |D| $absdelay
  54. set delay
  55. }
  56. SRM/repair instproc compute-delay {} {
  57. $self instvar D1_ D2_ agent_ requestor_
  58. set unif [uniform 0 1]
  59. set rancomp [expr $D1_ + $D2_ * $unif]
  60. set dist [$agent_ distance? $requestor_]
  61. set delay [expr $rancomp * $dist]
  62. $self evTrace P INTERVALS D1 $D1_ D2 $D2_ d $dist U $unif |D| $delay
  63. set delay
  64. }