示例#1
0
class discovery(Component):
    def __init__(self, ctxt):
        Component.__init__(self, ctxt)

        self._bindings = self.resolve(pybindings_storage)
        self._user_event_log = self.resolve(pyuser_event_log)

        self.dps = {}
        self.lldp_packets = {}
        self.adjacency_list = {}

    def configure(self, configuration):

        arg_len = len(configuration['arguments'])

        self.lldp_send_period = LLDP_SEND_PERIOD
        if arg_len == 1:
            try:
                val = float(configuration['arguments'][0])
                self.lldp_send_period = val
                lg.debug("Setting LLDP send timer to " + str(val))
            except Exception, e:
                lg.error("unable to convert arg to float " +
                         configuration['arguments'][0])

        self.register_event(Link_event.static_get_name())
        Link_event.register_event_converter(self.ctxt)
 def configure(self, configuration):
     #self.register_event(Link_event.static_get_name())
     Link_event.register_event_converter(self.ctxt)
示例#3
0
 def configure(self, configuration):
     #self.register_event(Link_event.static_get_name())
     Link_event.register_event_converter(self.ctxt)
示例#4
0
文件: discovery.py 项目: zec/OESS
        elif arg_len == 2:
            try:
                val = float(configuration['arguments'][0])
                self.lldp_send_period = val;
                lg.debug("Setting LLDP send timer to " + str(val))

                val = int(configuration['arguments'][1])
                self.vlan_id = val;
                lg.debug("Setting LLDP VLAN to " + str(val))

            except Exception, e:
                lg.error("unable to convert arg to integer " + configuration['arguments'][0])
    

        self.register_event(Link_event.static_get_name())
        Link_event.register_event_converter(self.ctxt)

    def install(self):
        self.register_for_datapath_join ( lambda dp,stats : discovery.dp_join(self, dp, stats) )
        self.register_for_datapath_leave( lambda dp       : discovery.dp_leave(self, dp) )
        self.register_for_port_status( lambda dp, reason, port : discovery.port_status_change(self, dp, reason, port) )
        # register handler for all LLDP packets 
        if(self.vlan_id != None):
            match = {
                DL_DST : array_to_octstr(array.array('B',NDP_MULTICAST)),DL_TYPE: ethernet.LLDP_TYPE, DL_VLAN: self.vlan_id}
        else:
            match = {
                DL_DST: array_to_octstr(array.array('B',NDP_MULTICAST)),DL_TYPE: ethernet.LLDP_TYPE }
                
        self.register_for_packet_match(lambda
            dp,inport,reason,len,bid,packet :