proc max {a b} { if {$a < $b} {return $b} {return $a} }
proc min {a b} { if {$a < $b} {return $a} {return $b} }

proc add_web_nodes {bdel randomize} {
  global ns n1 n2
  global s_
  global r_
  global count

	if {$randomize == 0} {
  	set x [expr $bdel/2]ms
  	set y [expr $bdel/2]ms
	} else {
		set x [ns-random]
		set y [ns-random]
		set x [expr $bdel*($x/2147483647.0)]ms
		set y [expr $bdel*($y/2147483647.0)]ms
	}
  set i $count
  set s_($i) [$ns node]
  set r_($i) [$ns node]
  $ns duplex-link $s_($i) $n1 2000Mb $x DropTail
  $ns duplex-link $r_($i) $n2 2000Mb $y DropTail
  incr count
}

proc add_web_traffic {bdel nums ip ps os flowid} {
  global ns n1 n2
  global s_
  global r_
  global count
	global pool

	set numWeb 10
	PagePool/WebTraf set FID_ASSIGNING_MODE_ 2
	set pool [new PagePool/WebTraf]
	$pool set-num-client $numWeb
	$pool set-num-server $numWeb
	$pool set sameFid_ $flowid

	for {set i 0} {$i < $numWeb} {incr i} {
  	add_web_nodes $bdel 1
  	$pool set-server $i $s_([expr $count - 1])
  	$pool set-client $i $r_([expr $count - 1])
	}
	$pool set-num-session $nums
	set numPage 1000
	for {set i 0} {$i < $nums} {incr i} {
  	set interPage [new RandomVariable/Exponential]
  	$interPage set avg_ $ip
  	set pageSize [new RandomVariable/Constant]
  	$pageSize set val_ $ps
  	set interObj [new RandomVariable/Exponential]
  	$interObj set avg_ [expr 0.01]
  	set objSize [new RandomVariable/ParetoII]
  	$objSize set avg_ $os
  	$objSize set shape_ 1.2
  	$pool create-session $i $numPage 0 $interPage $pageSize $interObj $objSize 
	}
}
