Porting PicoTCP WIP
This commit is contained in:
62
kernel/picotcp/test/python/reassembly.py
Executable file
62
kernel/picotcp/test/python/reassembly.py
Executable file
@ -0,0 +1,62 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# reassemby.py
|
||||
#
|
||||
# Reassemly test with PicoTCP receiving and Linux sending
|
||||
#
|
||||
# (receiver) (Sender)
|
||||
# PicoTCP ------------------------ Linux
|
||||
#
|
||||
# An udpecho is started which will receive DATASIZE bytes in one go
|
||||
# from the socket. The Linux will send DATASIZE bytes in one go to the
|
||||
# udpecho, this data will be sent fragmented. The udpecho is to reassemble
|
||||
# this data and echo it back.
|
||||
#
|
||||
|
||||
from topology import *
|
||||
import socket, random, string
|
||||
|
||||
SRC_ADDR = ''
|
||||
LINK_ADDR = '172.16.1.2'
|
||||
SRC_PORT = 5555
|
||||
LISTEN_PORT = 6667
|
||||
SENDTO_PORT = 5555
|
||||
DATASIZE = 3400
|
||||
UDPECHO = "udpecho:" + str(LINK_ADDR) + ":" + str(LISTEN_PORT) + ":" + str(SENDTO_PORT) + ":" + str(DATASIZE)
|
||||
|
||||
print UDPECHO
|
||||
|
||||
T = Topology()
|
||||
net1 = Network(T, "pyt0")
|
||||
h1 = Host(T, net1, args=UDPECHO)
|
||||
|
||||
str_send = ''.join(random.choice(string.ascii_lowercase) for x in range(DATASIZE))
|
||||
#print str_send
|
||||
s_udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
s_udp.bind((SRC_ADDR, SRC_PORT))
|
||||
s_udp.settimeout(5);
|
||||
|
||||
raw_input("Press enter to continue ...")
|
||||
start(T)
|
||||
|
||||
while True:
|
||||
s_udp.sendto(str_send, (LINK_ADDR, LISTEN_PORT))
|
||||
data = s_udp.recv(DATASIZE)
|
||||
#print len(data)
|
||||
if len(data) == DATASIZE:
|
||||
print '\n\n'
|
||||
print '+++++++++++++++++++++++++++++++++++++++++++++'
|
||||
print '+++++ reassembly test IS successful +++++'
|
||||
print '+++++++++++++++++++++++++++++++++++++++++++++'
|
||||
print '\n\n'
|
||||
cleanup()
|
||||
exit(0)
|
||||
|
||||
print '\n\n'
|
||||
print '+++++++++++++++++++++++++++++++++++++++++++++'
|
||||
print '+++++ reassembly test NOT successful ++++'
|
||||
print '+++++++++++++++++++++++++++++++++++++++++++++'
|
||||
print '\n\n'
|
||||
cleanup()
|
||||
exit(1)
|
||||
|
||||
Reference in New Issue
Block a user