+"""
+Library for the robot based system test tool of the OpenDaylight project.
+Authors: Vaibhav Bhatnagar@Brocade
+Updated: 2015-06-01
+"""
+import socket
+
+from robot.libraries.BuiltIn import BuiltIn
+
+
+class CapwapLibrary(object):
+ """Provide many methods to simulate WTPs and their functions."""
+
+ def __init__(self):
+ self.builtin = BuiltIn()
+
+ def send_discover(self, ac_ip, wtp_ip='', ip='ip', port=5246):
+ """Send Discover CAPWAP Packet from a WTP."""
+ data = ''.join(chr(x) for x in [0x00, 0x20, 0x01, 0x02, 0x03, 0x04, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16])
+ self.builtin.log('Sending Discover Packet to: %s' % ac_ip, 'DEBUG')
+ session = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
+ session.sendto(data, (ac_ip, port))
+ self.builtin.log('Packet Sent', 'DEBUG')
+
+ def get_hostip(self):
+ """Get Host IP Address."""
+ ip_addr = socket.gethostbyname(socket.gethostname())
+ return ip_addr
+
+ def get_simulated_wtpip(self, controller):
+ """Get the Simulated WTP ip based on the controller."""
+ if controller == '127.0.0.1':
+ exp_ip = controller
+ else:
+ exp_ip = self.get_hostip()
+ return exp_ip