gprs: Add reset procedure example...
start with the port of the SGSN as parameter. It is assumed the SGSN is on the same machine and can be reached via 127.0.0.1.
This commit is contained in:
parent
bb9a9bf05f
commit
06e877228b
|
@ -0,0 +1,59 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
"""
|
||||
demonstrate a unblock bug on the GB Proxy..
|
||||
"""
|
||||
|
||||
bts_ns_reset = "\x02\x00\x81\x01\x01\x82\x1f\xe7\x04\x82\x1f\xe7"
|
||||
ns_reset_ack = "\x03\x01\x82\x1f\xe7\x04\x82\x1f\xe7"
|
||||
|
||||
bts_ns_unblock = "\x06"
|
||||
ns_unblock_ack = "\x07"
|
||||
|
||||
bts_bvc_reset_0 = "\x00\x00\x00\x00\x22\x04\x82\x00\x00\x07\x81\x03\x3b\x81\x02"
|
||||
ns_bvc_reset_0_ack = "\x00\x00\x00\x00\x23\x04\x82\x00\x00"
|
||||
|
||||
bts_bvc_reset_8167 = "\x00\x00\x00\x00\x22\x04\x82\x1f\xe7\x07\x81\x08\x08\x88\x72\xf4\x80\x10\x1c\x00\x9c\x40"
|
||||
|
||||
|
||||
import socket
|
||||
socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
socket.bind(("0.0.0.0", 0))
|
||||
socket.setblocking(1)
|
||||
|
||||
def send_and_receive(packet, port):
|
||||
socket.sendto(packet, ("127.0.0.1", port))
|
||||
|
||||
try:
|
||||
data, addr = socket.recvfrom(4096)
|
||||
except socket.error, e:
|
||||
print "ERROR", e
|
||||
import sys
|
||||
sys.exit(0)
|
||||
return data
|
||||
|
||||
#send stuff once
|
||||
import sys
|
||||
port = int(sys.argv[1])
|
||||
print "Sending data to port: %d" % port
|
||||
|
||||
|
||||
res = send_and_receive(bts_ns_reset, port)
|
||||
if res != ns_reset_ack:
|
||||
print "Failed to get the reset ack"
|
||||
sys.exit(-1)
|
||||
|
||||
res = send_and_receive(bts_ns_unblock, port)
|
||||
if res != ns_unblock_ack:
|
||||
print "Failed to get the unblock ack"
|
||||
sys.exit(-1)
|
||||
|
||||
res = send_and_receive(bts_bvc_reset_0, port)
|
||||
if res != ns_bvc_reset_0_ack:
|
||||
print "Failed to get NS BVCI=0 reset ack"
|
||||
sys.exit(-1)
|
||||
|
||||
import time
|
||||
time.sleep(3)
|
||||
res = send_and_receive(bts_bvc_reset_8167, port)
|
||||
print "Send all messages... check wireshark for the last response"
|
Loading…
Reference in New Issue