On Tue, 25 Feb 2014 14:59:03 +0000
Anna kos <anna...@gmail.com> wrote:

> Hi,
> I have done some simple modifications to simple_switch_13.py based on your
> previous instruction, I am getting strange switch behavior which can be
> seen after dumping switch flow table, even ping sometimes doesn't work
> between pc in port 1 and port 6 even when flows are installed..in my
> opinion flows are forwarded to incoming port and output port(see flow table
> below..am I correct..?).....

Looks flows are wrong. If you just simply connect two ports:


=
from ryu.controller import handler
from ryu.controller import dpset
from ryu.controller import ofp_event
from ryu.ofproto import ofproto_v1_3
from ryu.ofproto import ofproto_v1_3_parser
from ryu.base import app_manager
from ryu.ofproto.ofproto_parser import MsgBase, msg_pack_into, msg_str_attr


class OF13(app_manager.RyuApp):
    OFP_VERSIONS = [ofproto_v1_3.OFP_VERSION]
    
    _CONTEXTS = {
        'dpset': dpset.DPSet,
        }

    def __init__(self, *args, **kwargs):
        super(OF13, self).__init__(*args, **kwargs)

    def delete_all_flows(self, dp):
        match = dp.ofproto_parser.OFPMatch()
        m = dp.ofproto_parser.OFPFlowMod(dp,
                                         command=dp.ofproto.OFPFC_DELETE,
                                         out_port=dp.ofproto.OFPP_ANY,
                                         out_group=dp.ofproto.OFPG_ANY)

        dp.send_msg(m)
    def add_flow(self, datapath, priority, match, actions):
        ofproto = datapath.ofproto
        parser = datapath.ofproto_parser

        inst = [parser.OFPInstructionActions(ofproto.OFPIT_APPLY_ACTIONS,
                                             actions)]

        mod = parser.OFPFlowMod(datapath=datapath, priority=priority,
                                match=match, instructions=inst)
        datapath.send_msg(mod)

    @handler.set_ev_cls(dpset.EventDP, dpset.DPSET_EV_DISPATCHER)
    def handler_datapath(self, ev):
        if ev.enter:
            print "join"
            dp = ev.dp

            self.delete_all_flows(dp)
            
            actions = [dp.ofproto_parser.OFPActionOutput(2)]
            match = dp.ofproto_parser.OFPMatch(in_port=1)
            self.add_flow(dp, 1, match, actions)

            actions = [dp.ofproto_parser.OFPActionOutput(1)]
            match = dp.ofproto_parser.OFPMatch(in_port=2)
            self.add_flow(dp, 1, match, actions)


------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to