NS example
NS examples for wireless scenario
[ A Simple One | A Complex One | Link Error Example | Back to Network Simulator 2 for Wireless ]
This is a simple test scenario for 4x4 grid
and 4 flows.
# =================================================== # Author: ZHIBIN WU 06/19/2003 # ================================================== # Zhibin Wu create this script to measure the pure # throughput of 802.11 MAC, default data rate is 2Mbps #
# handling command-line parameters first if {$argc == 4} { set cbr_size [lindex $argv 0] set cbr_interval [lindex $argv 1] set num_row [lindex $argv 2] set time_duration [lindex $argv 3] } else { set cbr_size 500 set cbr_interval 0.002 set num_row 2 set time_duration 100 } puts " the size of packet is $cbr_size and the interval of pkt is $cbr_interval the size of grid is $num_row, duration is $time_duration seconds "
# ====================================================================== # 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/802_11 ;# MAC type #set val(ifq) Queue/DropTail/PriQueue ;# interface queue type set val(mac) Mac/PR_TDMA set val(ifq) Queue/TDMAScheduler set val(ll) LL ;# link layer type set val(ant) Antenna/OmniAntenna ;# antenna model set val(ifqlen) 50 ;# max packet in ifq #set val(nn) $num_node ;# number of mobilenodes
set val(rp) DSDV ;# routing protocol
# ====================================================================== # Main Program # ======================================================================
# # Initialize Global Variables # set ns_ [new Simulator] set tracefd [open simple.tr w] $ns_ trace-all $tracefd
# set up topography object set topo [new Topography]
$topo load_flatgrid 5000 5000
set chan1 [new $val(chan)]
# # Create God # create-god [expr $num_row * $num_row ]
# # Create the specified number of mobilenodes [$val(nn)] and "attach" them # to the channel.
# configure node
$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 $chan1 \ -topoInstance $topo \ -agentTrace ON \ -routerTrace OFF\ -macTrace ON \ -movementTrace OFF
for {set i 0} {$i < [expr $num_row*$num_row ] } {incr i} { set node_($i) [$ns_ node] $node_($i) random-motion 0 ;# disable random motion }
# # Provide initial (X,Y, for now Z=0) co-ordinates for mobilenodes # #for {set k 0} {} {incr k} set k 0; while {$k < $num_row } { for {set i 0} {$i < $num_row } {incr i} { set m [expr $i+$k*$num_row]; $node_($m) set X_ [expr $i*240]; $node_($m) set Y_ [expr $k*240+20.0]; $node_($m) set Z_ 0.0
} incr k; };
set j [expr $num_row *($num_row -1)] #j = 4*3 =12 #Create a UDP agent and attach it to node n0
for {set i 0} {$i < $num_row } {incr i} {
set n [expr $i+$j] #set n 8 set udp_($i) [new Agent/UDP] #$ns_ attach-agent $node_($i) $udp_($i)
set cbr_($i) [new Application/Traffic/CBR] $cbr_($i) set packetSize_ $cbr_size $cbr_($i) set interval_ 0.5 $cbr_($i) attach-agent $udp_($i)
set null_($i) [new Agent/Null] #$ns_ attach-agent $node_($n) $null_($i)
#$ns_ connect $udp_($i) $null_($i)
}
$ns_ attach-agent $node_(0) $udp_(0) $ns_ attach-agent $node_(7) $udp_(1) $ns_ attach-agent $node_(2) $udp_(2) #$ns_ attach-agent $node_(7) $udp_(3)
$ns_ attach-agent $node_(6) $null_(0) $ns_ attach-agent $node_(1) $null_(1) $ns_ attach-agent $node_(8) $null_(2) #$ns_ attach-agent $node_(15) $null_(3)
for {set i 0} {$i < $num_row } {incr i} { $ns_ connect $udp_($i) $null_($i) }
# Create a CBR traffic source and attach it to udp0
$ns_ at 11.0234 "$cbr_(0) start" $ns_ at 10.4578 "$cbr_(1) start" $ns_ at 12.7184 "$cbr_(2) start" #$ns_ at 12.2456 "$cbr_(3) start" for {set i 0} {$i < 3 } {incr i} { $ns_ at 50 "$cbr_($i) set interval_ $cbr_interval" }
# Tell nodes when the simulation ends # for {set i 0} {$i < [expr $num_row*$num_row] } {incr i} { $ns_ at [expr $time_duration +10.0] "$node_($i) reset"; } $ns_ at [expr $time_duration +10.0] "finish" $ns_ at [expr $time_duration +10.01] "puts \"NS Exiting...\"; $ns_ halt"
proc finish {} { global ns_ tracefd $ns_ flush-trace close $tracefd }
puts "Starting Simulation..." $ns_ run
|
However, a more professional way to write the
test tcl is to following the way in ns examples. For example, it is better
to write traffic patten file and mobility file seperately and then source
them in the main test tcl. Those files are generated respectively with cbrgen
and setdest tools. Those files are ususally stored in "/ns-2.??/tcl/mobility/scene"
directory.
This is an example for DSDV routing with 50 nodes in a 670*670 m2
area
# ====================================================================== # Default Script Options # ====================================================================== set opt(chan) Channel/WirelessChannel set opt(prop) Propagation/TwoRayGround #set opt(netif) NetIf/SharedMedia set opt(netif) Phy/WirelessPhy #set opt(mac) Mac/802_11 set opt(mac) Mac/802_11 set opt(ifq) Queue/DropTail/PriQueue set opt(ll) LL set opt(ant) Antenna/OmniAntenna
set opt(x) 670 ;# X dimension of the topography set opt(y) 670 ;# Y dimension of the topography set opt(cp) "../mobility/scene/cbr-50-10-4-512" set opt(sc) "../mobility/scene/scen-670x670-50-600-20-0"
set opt(ifqlen) 50 ;# max packet in ifq set opt(nn) 50 ;# number of nodes set opt(seed) 0.0 set opt(stop) 1000.0 ;# simulation time set opt(tr) out.tr ;# trace file set opt(rp) dsdv ;# routing protocol script set opt(lm) "off" ;# log movement
# ======================================================================
#set AgentTrace ON #set RouterTrace ON #set MacTrace OFF #useless code, the only way to toggle Mac trace on is to use node-config
LL set mindelay_ 50us LL set delay_ 25us LL set bandwidth_ 0 ;# not used LL set off_prune_ 0 ;# not used LL set off_CtrMcast_ 0 ;# not used
Agent/Null set sport_ 0 Agent/Null set dport_ 0
Agent/CBR set sport_ 0 Agent/CBR set dport_ 0
Agent/TCPSink set sport_ 0 Agent/TCPSink set dport_ 0
Agent/TCP set sport_ 0 Agent/TCP set dport_ 0 Agent/TCP set packetSize_ 1460
Queue/DropTail/PriQueue set Prefer_Routing_Protocols 1
# unity gain, omni-directional antennas # set up the antennas to be centered in the node and 1.5 meters above it Antenna/OmniAntenna set X_ 0 Antenna/OmniAntenna set Y_ 0 Antenna/OmniAntenna set Z_ 1.5 Antenna/OmniAntenna set Gt_ 1.0 Antenna/OmniAntenna set Gr_ 1.0
# Initialize the SharedMedia interface with parameters to make # it work like the 914MHz Lucent WaveLAN DSSS radio interface Phy/WirelessPhy set CPThresh_ 10.0 Phy/WirelessPhy set CSThresh_ 1.559e-11 Phy/WirelessPhy set RXThresh_ 3.652e-10 Phy/WirelessPhy set Rb_ 2*1e6 Phy/WirelessPhy set Pt_ 0.2818 Phy/WirelessPhy set freq_ 914e+6 Phy/WirelessPhy set L_ 1.0
# ======================================================================
proc usage { argv0 } { puts "Usage: $argv0" puts "\tmandatory arguments:" puts "\t\t\[-x MAXX\] \[-y MAXY\]" puts "\toptional arguments:" puts "\t\t\[-cp conn pattern\] \[-sc scenario\] \[-nn nodes\]" puts "\t\t\[-seed seed\] \[-stop sec\] \[-tr tracefile\]\n" }
proc getopt {argc argv} { global opt lappend optlist cp nn seed sc stop tr x y
for {set i 0} {$i < $argc} {incr i} { set arg [lindex $argv $i] if {[string range $arg 0 0] != "-"} continue
set name [string range $arg 1 end] set opt($name) [lindex $argv [expr $i+1]] } }
proc cmu-trace { ttype atype node } { global ns_ tracefd
if { $tracefd == "" } { return "" } set T [new CMUTrace/$ttype $atype] $T target [$ns_ set nullAgent_] $T attach $tracefd $T set src_ [$node id]
$T node $node
return $T }
proc log-movement {} { global logtimer ns_ ns
set ns $ns_ source ../mobility/timer.tcl Class LogTimer -superclass Timer LogTimer instproc timeout {} { global opt node_; for {set i 0} {$i < $opt(nn)} {incr i} { $node_($i) log-movement } $self sched 0.1 }
set logtimer [new LogTimer] $logtimer sched 0.1 }
# ====================================================================== # Main Program # ====================================================================== getopt $argc $argv
# # Source External TCL Scripts # #source ../lib/ns-mobilenode.tcl
#if { $opt(rp) != "" } { #source ../mobility/$opt(rp).tcl #} elseif { [catch { set env(NS_PROTO_SCRIPT) } ] == 1 } { #puts "\nenvironment variable NS_PROTO_SCRIPT not set!\n" #exit #} else { #puts "\n*** using script $env(NS_PROTO_SCRIPT)\n\n"; #source $env(NS_PROTO_SCRIPT) #} #source ../lib/ns-cmutrace.tcl source ../lib/ns-bsnode.tcl source ../mobility/com.tcl
# do the get opt again incase the routing protocol file added some more # options to look for getopt $argc $argv
if { $opt(x) == 0 || $opt(y) == 0 } { usage $argv0 exit 1 }
if {$opt(seed) > 0} { puts "Seeding Random number generator with $opt(seed)\n" ns-random $opt(seed) }
# # Initialize Global Variables # set ns_ [new Simulator] set chan [new $opt(chan)] set prop [new $opt(prop)] set topo [new Topography] set tracefd [open $opt(tr) w]
$topo load_flatgrid $opt(x) $opt(y)
$prop topography $topo
# # Create God # create-god $opt(nn)
# # log the mobile nodes movements if desired # if { $opt(lm) == "on" } { log-movement }
$ns_ node-config -macTrace ON
# # Create the specified number of nodes $opt(nn) and "attach" them # the channel. # Each routing protocol script is expected to have defined a proc # create-mobile-node that builds a mobile node and inserts it into the # array global $node_($i) #
if { [string compare $opt(rp) "dsr"] == 0} { for {set i 0} {$i < $opt(nn) } {incr i} { dsr-create-mobile-node $i } } elseif { [string compare $opt(rp) "dsdv"] == 0} { for {set i 0} {$i < $opt(nn) } {incr i} { dsdv-create-mobile-node $i } }
# # Source the Connection and Movement scripts # if { $opt(cp) == "" } { puts "*** NOTE: no connection pattern specified." set opt(cp) "none" } else { puts "Loading connection pattern..." source $opt(cp) }
#
# Tell all the nodes when the simulation ends
#
for {set i 0} {$i < $opt(nn) } {incr i} {
$ns_ at $opt(stop).000000001 "$node_($i) reset";
}
$ns_ at $opt(stop).00000001 "puts \"NS EXITING...\" ; $ns_ halt"
if { $opt(sc) == "" } { puts "*** NOTE: no scenario file specified." set opt(sc) "none" } else { puts "Loading scenario file..." source $opt(sc) puts "Load complete..." }
puts $tracefd "M 0.0 nn $opt(nn) x $opt(x) y $opt(y) rp $opt(rp)"
puts $tracefd "M 0.0 sc $opt(sc) cp $opt(cp) seed $opt(seed)"
puts $tracefd "M 0.0 prop $opt(prop) ant $opt(ant)"
puts "Starting Simulation..."
$ns_ run
|
Note that all options listed in the beginning of the file could be initialized
with command line arguments by using "getopt $argc $argv"
Example 3 : To attach the error model, add following codes:
.......... proc UniformErr {} { set err [new ErrorModel] $err unit packet $err set rate_ 0.05 return $err } # $err rate_ 0.5 "invalid command ErrModel::Command does not support" # the other valid method is " set err [new ErrorModel/Uniform 0.05 pkt] " # the parameter rate ( 0 or 0.9) is a threshold that all packets all going through and 90% packets are # going to be drop
proc TwoStateMarkovErr {} {
set tmp0 [new ErrorModel/Uniform 0 pkt] set tmp1 [new ErrorModel/Uniform .7 pkt]
# Array of states (error models) set m_states [list $tmp0 $tmp1] # Durations for each of the states, tmp, tmp1 and tmp2, respectively set m_periods [list 0.1 .075 ] # Transition state model matrix set m_transmx { {0.9 0.1 } {0.7 0.3 } } set m_trunit byte # Use time-based transition set m_sttype time set m_nstates 2 set m_nstart [lindex $m_states 0]
set em [new ErrorModel/MultiState $m_states $m_periods $m_transmx \ $m_trunit $m_sttype $m_nstates $m_nstart] return $em }
$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 $chan1 \ -topoInstance $topo \ -agentTrace ON \ -routerTrace OFF\ -macTrace ON \ -movementTrace OFF \ -IncomingErrProc TwoStateMarkovErr #\ #-OutcomingErrProc TwoStateMarkovErr
#The other way to configure error # $ns_ node-config --IncomingErrProc $opt(err)
|
출처 : http://www.winlab.rutgers.edu/%7Ezhibinwu/html/NS_examp.html#Example_3
Trackback address :: http://4ellene.net/tt/trackback/1191
-
Tracked from play free casino games
2009/03/30 04:35
삭제
best rated online casinos
-
Tracked from viagra cialis levitra
2009/04/02 14:03
삭제
non prescription viagra
-
Tracked from viagra cialis levitra
2009/04/03 16:55
삭제
non prescription viagra
-
Tracked from forced sex fantasies
2009/04/13 12:04
삭제
forced sex comics
-
Tracked from forced sex fantasies
2009/04/14 15:53
삭제
forced sex clips
-
Tracked from bdsm free videos
2009/04/14 23:00
삭제
bdsm for all
-
Tracked from bdsm cartoons
2009/04/15 09:06
삭제
bdsm bound
-
Tracked from sex rape stories
2009/06/29 19:27
삭제
movie rape scenes
-
Tracked from xxx forced sex
2009/06/29 20:41
삭제
rape sex
-
Tracked from brutal facesitting
2009/06/30 02:59
삭제
rape gallery
-
Tracked from forced to sex
2009/06/30 03:33
삭제
rape cases
-
Tracked from extreme cumshots
2009/06/30 13:18
삭제
breast torture extreme
-
Tracked from extreme facials
2009/07/01 01:47
삭제
rape dvd
-
Tracked from crime rape
2009/07/01 06:24
삭제
wife rape
-
Tracked from tentacle rape
2009/07/01 11:59
삭제
extreme hard sex
-
Tracked from rape sites
2009/07/01 13:29
삭제
extreme beast sex
-
Tracked from brutal blow jobs
2009/07/01 21:32
삭제
porn rape stories
-
Tracked from rape in movies
2009/07/02 01:10
삭제
sex forced
-
Tracked from rape torture
2009/07/02 04:44
삭제
rape trailers
-
Tracked from asian forced sex
2009/07/02 06:15
삭제
forced sex sites
-
Tracked from rape poems
2009/07/02 13:46
삭제
teen rapes
-
Tracked from porn brazilian rape
2009/07/03 01:37
삭제
rape pictures stories
-
Tracked from asian forced sex
2009/07/06 21:03
삭제
fantasy rape stories
-
Tracked from porno rape
2009/07/09 01:05
삭제
forced to fuck
-
Tracked from forced bi sex
2009/07/09 12:48
삭제
forced sex movie
-
Tracked from virtual casino
2009/07/10 01:33
삭제
online casino game
-
Tracked from casinos
2009/07/10 08:50
삭제
no bonus online casinos
-
Tracked from free online casino cash
2009/07/10 17:30
삭제
casino on the net
-
Tracked from usa casino gaming
2009/07/10 19:54
삭제
no bonus online casinos
-
Tracked from casino betting
2009/07/11 03:26
삭제
casino websites
-
Tracked from internet casino online
2009/07/11 03:57
삭제
no deposit online casino
-
Tracked from canadian online casinos
2009/07/11 09:43
삭제
online free casino games
-
Tracked from casino online games
2009/07/12 02:16
삭제
online gambling casinos
-
Tracked from free casinos online
2009/07/12 07:17
삭제
casino gaming table
-
Tracked from casino game online
2009/07/12 14:39
삭제
new online casino
-
Tracked from casino poker game online
2009/07/13 17:54
삭제
online casino poker
-
Tracked from casino directory
2009/07/13 18:19
삭제
england casino
-
Tracked from casino s online
2009/07/14 04:00
삭제
online casino bonuses
-
Tracked from casinos gratis online
2009/07/15 00:36
삭제
casino games
-
Tracked from directorio casino online
2009/07/15 05:07
삭제
casino bonus
-
Tracked from casino gamble
2009/07/15 15:33
삭제
online download casino games blackjack
-
Tracked from play casino online
2009/07/15 17:15
삭제
online casino s
-
Tracked from no deposit online casinos
2009/07/16 04:55
삭제
online casino gambling
-
Tracked from poker games online
2009/07/16 05:10
삭제
1 hour free us online casinos
-
Tracked from vip online casino
2009/07/16 11:23
삭제
online casino free bonus
-
Tracked from vip casin
2009/07/17 05:37
삭제
online no deposit casinos
-
Tracked from casino gambling online
2009/07/17 17:33
삭제
online gambling casinos
-
Tracked from online free casino games
2009/07/17 18:45
삭제
online internet casino
-
Tracked from free online casino games
2009/07/17 22:46
삭제
casinos online internet
-
Tracked from free online casinos
2009/07/18 03:19
삭제
online casino slot
-
Tracked from casino gaming online
2009/07/18 07:36
삭제
online casino no depost
-
Tracked from golden casino http
2009/07/18 20:29
삭제
no download casino
-
Tracked from online casino betting
2009/07/19 03:24
삭제
free casino slots
-
Tracked from new no deposit online casinos
2009/07/20 00:35
삭제
casino bonus
-
Tracked from casinos online
2009/07/20 00:36
삭제
best online casino
-
Tracked from lesbian shemales
2009/07/20 08:13
삭제
ladyboy ass
-
Tracked from ladyboy web cams
2009/07/20 11:17
삭제
latin tranny
-
Tracked from futanari links
2009/07/21 02:05
삭제
shemale fucks girl
-
Tracked from sexy ladyboys
2009/07/21 07:45
삭제
shemale blowjob
-
Tracked from lesbian tranny
2009/07/21 13:22
삭제
m2f transsexuals
-
Tracked from chompoo ladyboy
2009/07/21 19:32
삭제
shemale ass
-
Tracked from nancy ladyboy
2009/07/22 05:09
삭제
shemale galleries
-
Tracked from tranny hunter
2009/07/22 12:53
삭제
hot shemales
-
Tracked from transexual gallery
2009/07/23 10:20
삭제
tranny surprise
-
Tracked from phillipine transvestite
2009/07/23 12:04
삭제
black transexuals
-
Tracked from huge shemale
2009/07/24 05:37
삭제
ladyboy tube
-
Tracked from extreme ladyboy
2009/07/24 22:24
삭제
ladyboy movies
-
Tracked from sexy shemales
2009/07/25 00:30
삭제
asian ladyboy
-
Tracked from shemale cartoons
2009/07/25 05:28
삭제
ladyboy ass
-
Tracked from dad and daughter sex
2009/09/06 06:51
삭제
daughter incest incest
-
Tracked from mom and daughter
2009/09/06 12:43
삭제
mom daughter
-
Tracked from incest toons
2009/09/06 14:25
삭제
incest cartoon
-
Tracked from mom and daughter sex
2009/09/07 03:46
삭제
Fucked Her Son
-
Tracked from dad and daughter
2009/09/07 06:13
삭제
fathers fucking daughters
-
Tracked from family fucking incest family fucking
2009/09/07 20:33
삭제
family incest galleries
-
Tracked from family nudist galleries
2009/09/07 21:01
삭제
family porn
-
Tracked from incest toons
2009/09/08 07:45
삭제
lesbian mother daughters
-
Tracked from daddies and sons gay
2009/09/08 19:43
삭제
daddy and little girl fantasy
-
Tracked from dad with sis son sex mom
2009/09/09 02:05
삭제
dad fucking virgin daughter
-
Tracked from little sister
2009/09/09 02:07
삭제
brother sister incest
-
Tracked from mother daughter sex
2009/09/09 07:59
삭제
lesbian mother daughters
-
Tracked from daughter incest incest
2009/09/09 08:33
삭제
daughter sex
-
Tracked from daughter fucking incest porn
2009/09/09 23:31
삭제
young incest porn
-
Tracked from dad and daughter incest
2009/09/09 23:45
삭제
dad and daughter
-
Tracked from bondage movie
2009/09/11 04:43
삭제
bondage paper
-
Tracked from torture vaginal
2009/09/12 04:04
삭제
torture videos
-
Tracked from latex bdsm
2009/09/12 04:47
삭제
lesbian bondage
-
Tracked from bdsm artwork
2009/09/12 09:49
삭제
bdsm bound
-
Tracked from bdsm cartoons
2009/09/12 20:33
삭제
bdsm comics
-
Tracked from sex punishment
2009/09/13 02:14
삭제
sex punishment submission stories
-
Tracked from orgasm torture
2009/09/13 06:18
삭제
panty domination
-
Tracked from real torture
2009/09/14 01:10
삭제
rubber bondage
-
Tracked from bdsm cartoons
2009/09/14 02:25
삭제
bdsm comics
-
Tracked from sex slave
2009/09/14 08:52
삭제
sex slaves
-
Tracked from extreme bdsm
2009/09/14 09:17
삭제
female bondage
-
Tracked from bdsm books
2009/09/14 11:34
삭제
bdsm cartoons
-
Tracked from device bondage
2009/09/15 16:18
삭제
dick torture
-
Tracked from bondage clips
2009/09/15 18:05
삭제
bondage directory
-
Tracked from bdsm cartoons
2009/09/15 20:19
삭제
bdsm comics
-
Tracked from electric torture
2009/09/16 08:16
삭제
extreme bdsm
-
Tracked from torture vaginal
2009/09/16 10:57
삭제
torture whip
-
Tracked from bondage art
2009/09/16 12:07
삭제
bondage blowjob
-
Tracked from diaper bondage
2009/09/17 17:11
삭제
domination
-
Tracked from incest sex
2009/09/27 16:09
삭제
incest pictures
-
Tracked from mother daughter sex
2009/09/28 10:59
삭제
mother son daughter sex
-
Tracked from free incest porn videos
2009/09/28 12:52
삭제
mom daughter sex
-
Tracked from dad fucks daughter
2009/09/29 09:35
삭제
dad with sis son sex mom
-
Tracked from dad and daughter incest
2009/09/29 16:16
삭제
dad with sis son sex mom
-
Tracked from little sister
2009/09/29 16:46
삭제
brother sister incest
-
Tracked from dad fucking son
2009/10/02 20:36
삭제
daddies and sons gay
-
Tracked from fucked her son
2009/10/03 05:34
삭제
incest cartoon
-
Tracked from mom and son sex galleries
2009/10/03 07:39
삭제
mom mature son gallery
-
Tracked from Mom Strips for Son
2009/10/04 08:12
삭제
incest stories
-
Tracked from bdsm comics
2009/10/20 09:32
삭제
bdsm comix
-
Tracked from bondage blog
2009/10/21 18:45
삭제
bondage blowjob
-
Tracked from bdsm comix
2009/10/22 09:34
삭제
bdsm drawings
-
Tracked from bdsm sex
2009/10/22 11:21
삭제
amateur bdsm
-
Tracked from public bdsm
2009/10/23 10:19
삭제
shemale bdsm
-
Tracked from bdsm comix
2009/10/23 11:12
삭제
bdsm drawings
-
Tracked from bdsm video
2009/10/23 18:52
삭제
bdsm videos
Comments List