from ryu.base               import app_manager
from ryu.controller         import ofp_event
from ryu.controller.handler import MAIN_DISPATCHER
from ryu.controller.handler import set_ev_cls
from ryu.ofproto            import ofproto_v1_3

class KiwiPycon(app_manager.RyuApp):
  OFP_VERSIONS = [ofproto_v1_3.OFP_VERSION] #OpenFlow 1.3

  def __init__(self, *args, **kwargs):
    super(KiwiPycon, self).__init__(*args, **kwargs)
    
  @set_ev_cls(ofp_event.EventOFPStateChange, 
              MAIN_DISPATCHER)
  def new_connection(self, ev):
    dp = ev.datapath
    self.logger.info("Switch connected (id=%s)" % dp.id)
