8
sys.stdout.write(data + '\n')
13
print "%s <number of routes> <updates per second thereafter>"
17
thereafter = sys.argv[2]
19
if not initial.isdigit() or not thereafter.isdigit():
20
write('please give valid numbers')
23
# Limit to sane numbers :-)
24
number = int(initial) & 0x00FFFFFF
25
after = int(thereafter) & 0x0000FFFF
27
range1 = (number >> 16) & 0xFF
28
range2 = (number >> 8) & 0xFF
29
range3 = (number ) & 0xFF
32
nexthop = ['%d.%d.%d.%d' % (random.randint(1,200),random.randint(0,255),random.randint(0,255),random.randint(0,255)) for _ in range(200)]
34
for ip1 in range(0,range1):
35
for ip2 in range(0,256):
36
for ip3 in range(0,256):
37
generated = '%d.%d.%d.%d' % (random.randint(1,200),ip1,ip2,ip3)
38
ip[generated] = random.choice(nexthop)
40
for ip2 in range (0,range2):
41
for ip3 in range (0,256):
42
generated = '%d.%d.%d.%d' % (random.randint(1,200),range1,ip2,ip3)
43
ip[generated] = random.choice(nexthop)
45
for ip3 in range (0,range3):
46
generated = '%d.%d.%d.%d' % (random.randint(1,200),range1,range2,ip3)
47
ip[generated] = random.choice(nexthop)
52
for k,v in ip.iteritems():
54
write('announce route %s next-hop %s med 1%02d as-path [ 100 101 102 103 104 105 106 107 108 109 110 ]' % (k,v,len(k)))
56
sys.stderr.write('initial : announced %d\n' % count)
60
# modify routes forever
65
for k,v in ip.iteritems():
67
if not random.randint(0,after):
70
for k,v in changed.iteritems():
72
write('withdraw route %s next-hop %s med 1%02d as-path [ 100 101 102 103 104 105 106 107 108 109 110 ]' % (k,v,len(k)))
73
ip[k] = random.choice(nexthop)
74
write('announce route %s next-hop %s med 1%02d as-path [ 100 101 102 103 104 105 106 107 108 109 110 ]' % (k,ip[k],len(k)))
76
sys.stderr.write('updates : announced %d\n' % count)
79
time.sleep(time.time()-now+1.0)
81
if __name__ == '__main__':
84
except KeyboardInterrupt: