Hi,
you need to enable the switch context for doing that.
take a sample this:
_CONTEXTS = {
'switches': switches.Switches,
}
def __init__(self, *args, **kwargs):
super(AppTest, self).__init__(*args, **kwargs)
self.switches = kwargs['switches']
this module enables switchEnter a switchLeave events.
2018-07-19 11:17 GMT-03:00 Soe Ye Htet <soeyehtet1...@gmail.com>:
> Dear,
>
> Please kindly suggest me how to detect node failure. I follow the
> following code to detect the node failure by writing the
> event.EventSwitchLeave but I can only detect the switch enter. When I shut
> down the node, the leaved switch cannot be detected.
>
> from operator import attrgetter
> from ryu.base import app_manager
> from ryu.controller import ofp_event
> 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.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.topology import event, switches
> from ryu.lib import hub
> from ryu.topology.switches import LLDPPacket
> from ryu import topology
> import numpy
> 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
>
> class SimpleSwitch13(app_manager.RyuApp):
> OFP_VERSIONS = [ofproto_v1_3.OFP_VERSION]
>
> def __init__(self, *args, **kwargs):
> super(SimpleSwitch13, self).__init__(*args, **kwargs)
> self.datapaths = {}
> self.mac_to_port = {}
> self.switches={}
>
> @set_ev_cls(event.EventSwitchEnter)
> def switch_enter_handler(self,event):
> switch = event.switch.dp.id
> switch_ip = event.switch.dp.address
> self.switches[switch] = switch_ip
> # print("List of switches", self.switches)
>
> @set_ev_cls(event.EventSwitchLeave)
> def switch_leave_handler(self,event):
> switch = event.switch.dp.id
> switch_ip = event.switch.dp.address
> print("deleted switch ID",switch)
> if switch in switches:
> del self.switches[switch]
> print("deleted switch",self.switches)
>
>
> Best regards,
> Soe Ye Htet
>
> ------------------------------------------------------------
> ------------------
> 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
>
>
--
"A computer is like air conditioning: it becomes useless when you open
windows." - Linus Torvalds
Fernando N. N. Farias
Computer Science PhD. Student
Research Group member on Computer Networks and Multimedia Communications -
GERCOM/UFPA
Future Internet Team - GERCOM
Federal University of ParĂ¡
------------------------------------------------------------------------------
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