Dear Trema-Dev Team,
I am currently doing a load-balancing system for my school project and I got into a problem which I can't understand and solve.
While using the trema's virtual network, all functions work according to what it is programmed to do.(as in using the 'trema run <controller> -c <network>' command)
However, after migrating to the OpenVswitch on Ubuntu behind VMware, stats_reply stop invoking. Adding flows is okay, features reply were also working.
For simplicity and testing purposes, I created a simple controller file to test the replies.
The code is as follows:
class Test < Controller
def start
puts "System Start"
end
def switch_ready dpid
puts "Switch #{dpid} Ready!"
send_message dpid, PortStatsRequest.new
send_message dpid, FeaturesRequest.new
end
def stats_reply dpid, stats
puts "Switch #{dpid} Stats Received!"
end
def features_reply dpid, features
puts "Switch #{dpid} Features Received!"
end
end
The results are:
System Start
Switch 4 Ready!
Switch 4 Features Received!
Switch 1 Ready!
Switch 1 Features Received!
Switch 2 Ready!
Switch 2 Features Received!
Switch 3 Ready!
Switch 3 Features Received!
tcpdump seems to show that the switches are replying but I can't confirm it though. The tcpdump that I created is based on the following command "tcpdump -i eth1 ip host 192.168.0.1" and immediately after I invoked the tcpdump command, I launch the "trema run test.rb" command. I have attached the tcpdump log as a txt file to prevent the mail to look too messy.
(192.168.0.1 is the controller's ip address while eth1 is where the switches are connected to the controller via the control link.)
Hope the trema-dev team can assist me in solving this problem.
Thank you and please do tell me any information you may need.
Yours sincerely,
Poh Yong Xiang