Hi, Juli,<div><br></div><div>We really appreciate your quick reply. Yes, it will be very helpful for us if you could provide sample code for creating a proxy instance with C++, and the interface code where we may use python to call. I don't really understand what you mean by "simple binary protocol over TCP, inject configuration over TCP", do you mean sending the conf files over TCP to WANProxy instances? </div>
<div><br></div><div>For now, I think starting wanproxy from python is enough for us, we don't need to worry about control at this time. </div><div><br></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:16px;background-color:rgb(255,255,255)">
<b>Details about our code flow:</b></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:16px;background-color:rgb(255,255,255)"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:16px;background-color:rgb(255,255,255)">
So we have a open flow controller that runs on a VM and rest of the networks can be tenants (or clients). Clients establish a tcp connection and send a service request via configuration file over TCP to the controller describing the type of functionality they want to avail (in our case its WANProxy) and also will tell a network path (or a set of switches) over which client wants the reservations to be made. This request is handled by an allocator which takes all the parameters from config file, passes the control to a module(we have to implement this) which will need to communicate with WANProxy (already installed on the switches in network path) and make the necessary reservations. Once this set up is done, we will repeatedly send same large file to measure the performance of WANProxy.</div>
<div><br></div><div>What interface code do you think might be necessary? </div><div><br></div><div>Thank you very much. </div><br><div class="gmail_quote">On Sun, Feb 17, 2013 at 4:56 PM, Juli Mallett <span dir="ltr"><<a href="mailto:juli@clockworksquid.com" target="_blank">juli@clockworksquid.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Boxiang,<br>
<br>
Very excited to hear about your project.<br>
<br>
Really, if you're willing to write some bindings for the C++ code,<br>
it's probably better to entirely do without the configuration system<br>
if you're at all interested in scripting WANProxy.<br>
<br>
You would want to look at the ProxyListener and SSHProxyListener<br>
classes right now; creating one of those is what creates a proxy<br>
instance, and then you need only call 'event_main()' to get things off<br>
and running. I can provide sample code for creating a proxy instance<br>
(SSH or otherwise) with C++ code instead of a config file if that<br>
would be helpful for you.<br>
<br>
The drawback to that is that if I change anything in WANProxy, there's<br>
a possibility that your bindings would need updated. I could also<br>
provide a simple binary protocol over TCP for creating proxy<br>
instances, or even set up a listener that allows one to inject<br>
configuration over TCP.<br>
<br>
Control is a trickier question. Right now there's little in the way<br>
of statistics and reporting; you can't even easily get a list of<br>
current connections being proxied. What kinds of control do you need?<br>
It may be that I can point you to something that's working right now,<br>
or it may be that I need to add some code to provide an interface for<br>
your project.<br>
<br>
Thanks,<br>
Juli.<br>
<div><div><br>
On Sun, Feb 17, 2013 at 1:00 PM, Boxiang Pan <<a href="mailto:bopan@ucsd.edu" target="_blank">bopan@ucsd.edu</a>> wrote:<br>
> Hi,<br>
><br>
> We are a group of graduate students from UCSD, and we are working on a class<br>
> project using WANProxy. Our goal is to be able to start and control WANProxy<br>
> from an openflow based controller written in python. We already have the<br>
> openflow controller in python, and we would like to let it "talk" to<br>
> WANProxy. So instead of directly type "wanproxy -c client.conf" in the<br>
> terminal, we hope to type in a command in the openflow controller, and then<br>
> let it start/control the WANProxy. We'd appreciate it very much if you could<br>
> give us some guideline on how to integrate WANProxy with openflow<br>
> controller, specifically which parts of the code in WANProxy are the<br>
> interface/API that we should study? And what is the best tool to wrap<br>
> WANProxy into python?<br>
><br>
> Thank you for your help and suggestions.<br>
><br>
> --<br>
><br>
> Boxiang Pan<br>
><br><div><br></div>-- <br><div><br></div><font color="#663333"><font face="verdana, sans-serif">Boxiang Pan</font><br><br></font><div><div><font color="#663333">Department of Electrical and Computer Engineering</font></div>
<div><font color="#663333">University of California, San Diego </font></div><div><font color="#663333">Tel: 858-999-7655<br></font><br></div><div><br></div></div>
</div>
</div>
</blockquote></div></div>