Hi,
I am writing a Ryu controller with the same functionalities as the POX
controller i already have.
The code below is for POX:
def install_vf_video(self):
for vf in VideoStream_Objs:
msg = of.ofp_flow_mod()
msg.match = of.ofp_match(dl_dst=VideoStream_Objs[vf].video_mac,
dl_src=VideoStream_Objs[vf].server_mac)
msg.idle_timeout = of.OFP_FLOW_PERMANENT
msg.hard_timeout = of.OFP_FLOW_PERMANENT
msg.priority = 100
msg.actions.append(of.ofp_action_dl_addr.set_dst(VideoStream_Objs[vf].final_v_dl_dst))
msg.actions.append(of.ofp_action_nw_addr.set_dst(VideoStream_Objs[vf].final_v_nw_dst))
msg.actions.append(of.ofp_action_tp_port.set_dst(VideoStream_Objs[vf].final_v_tp_dst))
msg.actions.append(of.ofp_action_tp_port.set_src(VideoStream_Objs[vf].final_v_tp_src))
msg.actions.append(of.ofp_action_output(port=of.OFPP_FLOOD))
core.openflow.sendToDPID(self.dpid, msg) # send flow
modification
log.info('Installed Video flow for switch %s', self.connection)
I tried doing this on Ryu but it doesn't work:
def install_vf_video(self):
for vf in VideoStream_Objs: #eth_type=0x08000
match = parser.OFPMatch(eth_dst=VideoStream_Objs[vf].video_mac,
eth_src=VideoStream_Objs[vf].server_mac)
actions = [
parser.OFPActionSetField(eth_dst=VideoStream_Objs[vf].final_v_dl_dst),
parser.OFPActionSetField(ip_dst=VideoStream_Objs[vf].final_v_nw_dst),
parser.OFPActionSetField(tcp_dst=VideStream_Objs[vf].final_v_tp_dst),
parser.OFPActionSetField(tcp_src=VideoStream_Objs[vf].final_v_tp_src),
parser.OFPActionOutput(ofproto.OFPP_FLOOD)]
self.add_flow(datapath, 100, match, actions)
self.logger.info("Installed Video flow for switch %s",
dpid_to_str(dpid))
If someone could help me I would greatly appreciate it.
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel