Dear,

Here is my source code. I put the dpset.EventDP for detecting node failure
but when I shut down the OpenFlow switch, node failure case cannot be
detected from RYU controller. When I turn on back the OpenFlow switch, the
words of "datapath leave" has been appeared. Actually, it should have
appeared when I shut down the OpenFlow switch.

from ryu.lib.packet import ethernet
from operator import attrgetter
from ryu.base import app_manager
from ryu import controller
from ryu.controller import ofp_event
from ryu.controller import handler
from ryu.controller.handler import CONFIG_DISPATCHER, MAIN_DISPATCHER,
DEAD_DISPATCHER
from ryu.controller.handler import set_ev_cls
from ryu.ofproto import ofproto_v1_3
from ryu.controller import dpset
from ryu.lib.mac import haddr_to_bin
from ryu.lib.packet import ipv4
from ryu.lib.packet import tcp
from ryu.lib.packet import packet
from ryu.lib.packet import ethernet
from ryu.lib.packet import ether_types
from ryu.controller import event
from ryu.topology import event, switches
from ryu.lib import hub
from ryu.topology.switches import LLDPPacket
from ryu import topology
import numpy
from ryu.app.wsgi import ControllerBase
from ryu.topology.api import get_switch, get_link, get_all_link, get_all_switch
from ryu.lib import dpid
from threading import Lock
from collections import defaultdict
import copy
import os
import time
import socket
class testing (app_manager.RyuApp):
    _CONTEXTS = {'dpset':dpset.DPSet}
    OFP_VERSIONS = [ofproto_v1_3.OFP_VERSION]

    def __init__(self,*args,**kwargs):
        super(testing,self).__init__(*args,**kwargs)
        self.switch_table={}
        self.dpset = kwargs['dpset']

    @set_ev_cls(ofp_event.EventOFPSwitchFeatures, CONFIG_DISPATCHER)
    def switch_features_handler(self, ev):
        dp = ev.msg.datapath
        dp.socket.settimeout(20)
        self.switch_table.setdefault(dp.id,dp.address)
        print(self.switch_table)

    @set_ev_cls(dpset.EventDP,dpset.DPSET_EV_DISPATCHER)
    def switch_enter(self,ev):
        if ev.enter:
            self.logger.info("Connected_Switch_ID: %s (IP Address:
%s)[Status: %s] ",ev.dp.id,ev.dp.address,ev.enter)
        else:
            print("datapath leave")



On Mon, Jul 23, 2018 at 6:10 PM, Soe Ye Htet <soeyehtet1...@gmail.com>
wrote:

> Dear,
>
> You means I have to write dpset.DPSet._unregister(self,dp).
>
> Best Regards,
> Soe Ye Htet
>
> On Mon, Jul 23, 2018 at 4:28 PM, IWAMOTO Toshihiro <iwam...@valinux.co.jp>
> wrote:
>
>> On Sat, 21 Jul 2018 02:26:08 +0900,
>> Soe Ye Htet wrote:
>> >
>> > [1  <multipart/alternative (7bit)>]
>> > [1.1  <text/plain; UTF-8 (7bit)>]
>> > Dear,
>> >
>> > Sorry for my simple question.
>> >
>> > I tried to put False in dpset in order to track the disconnection from
>> the
>> > switch. Is there any example to put False.
>> >
>>
>> DPSet._unregister sends EventDP with self.enter == False.
>>
>> --
>> IWAMOTO Toshihiro
>>
>
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to