added 3 bmv2 examples: copy_to_cpu, meter, TLV_parsing
This commit is contained in:
44
examples/meter/send_and_receive.py
Normal file
44
examples/meter/send_and_receive.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from scapy.all import *
|
||||
import sys
|
||||
import threading
|
||||
|
||||
|
||||
big_lock = threading.Lock()
|
||||
|
||||
|
||||
class Receiver(threading.Thread):
|
||||
def __init__(self):
|
||||
threading.Thread.__init__(self)
|
||||
self.daemon = True
|
||||
|
||||
def received(self, p):
|
||||
big_lock.acquire()
|
||||
print "Received one"
|
||||
big_lock.release()
|
||||
|
||||
def run(self):
|
||||
sniff(iface="veth2", prn=lambda x: self.received(x))
|
||||
|
||||
|
||||
def main():
|
||||
try:
|
||||
packet_int = int(sys.argv[1])
|
||||
print "Sending packet with interval", packet_int
|
||||
except:
|
||||
print "Usage: sudo python send_and_receive.py <packet_int (seconds)>"
|
||||
sys.exit(1)
|
||||
|
||||
Receiver().start()
|
||||
|
||||
p = Ether(src="aa:aa:aa:aa:aa:aa") / IP(dst="10.0.1.10") / TCP() / "aaaaaaaaaaaaaaaaaaa"
|
||||
|
||||
while True:
|
||||
big_lock.acquire()
|
||||
sendp(p, iface="veth0", verbose=0)
|
||||
print "Sent one"
|
||||
big_lock.release()
|
||||
time.sleep(packet_int)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user