def port_config_set(controller, port_no, config, mask): """ Set the port configuration according the given parameters Gets the switch feature configuration and updates one port's configuration value according to config and mask """ logging.info("Setting port " + str(port_no) + " to config " + str(config)) request = ofp.message.features_request() reply, pkt = controller.transact(request) if reply is None: return -1 logging.debug(reply.show()) p = None for idx in range(len(reply.ports)): if reply.ports[idx].port_no == port_no: p = reply.ports[idx] break mod = ofp.message.port_mod() mod.port_no = port_no if p: mod.hw_addr = p.hw_addr mod.config = config mod.mask = mask if p: mod.advertise = p.advertised controller.message_send(mod) return 0
def port_config_set(controller, port_no, config, mask, logger): """ Set the port configuration according the given parameters Gets the switch feature configuration and updates one port's configuration value according to config and mask """ logger.info("Setting port " + str(port_no) + " to config " + str(config)) request = message.features_request() reply, pkt = controller.transact(request, timeout=2) if reply is None: return -1 logger.debug(reply.show()) for idx in range(len(reply.ports)): if reply.ports[idx].port_no == port_no: break if idx >= len(reply.ports): return -1 mod = message.port_mod() mod.port_no = port_no mod.hw_addr = reply.ports[idx].hw_addr mod.config = config mod.mask = mask mod.advertise = reply.ports[idx].advertised rv = controller.message_send(mod) return rv
def port_config_set(controller, port_no, config, mask): """ Set the port configuration according the given parameters Gets the switch feature configuration and updates one port's configuration value according to config and mask """ logging.info("Setting port " + str(port_no) + " to config " + str(config)) request = of10.message.features_request() reply, pkt = controller.transact(request) if reply is None: return -1 logging.debug(reply.show()) p = None for idx in range(len(reply.ports)): if reply.ports[idx].port_no == port_no: p = reply.ports[idx] break mod = of10.message.port_mod() mod.port_no = port_no if p: mod.hw_addr = p.hw_addr mod.config = config mod.mask = mask if p: mod.advertise = p.advertised controller.message_send(mod) return 0
def GetGenerationID(controller): ''' read current generation id ''' request = message.role_request() request.role = ofp.OFPCR_ROLE_NOCHANGE response, _ = controller.transact(request) if response is None: return None elif (response.header.type == ofp.OFPT_ROLE_REPLY): if response.generation_id == 0xffffffffffffffff: return 0 else: return response.generation_id + 1 else: print('\n' + response.show()) return None
def GetGenerationID(controller): ''' read current generation id ''' request = message.role_request() request.role = ofp.OFPCR_ROLE_NOCHANGE response,_ = controller.transact(request) if response is None: return None elif(response.header.type == ofp.OFPT_ROLE_REPLY): if response.generation_id == 0xffffffffffffffff: return 0 else: return response.generation_id + 1 else: print('\n' + response.show()) return None
def port_config_get(controller, port_no): """ Get a port's configuration Gets the switch feature configuration and grabs one port's configuration @returns (hwaddr, config, advert) The hwaddress, configuration and advertised values """ request = message.features_request() reply, pkt = controller.transact(request) logging.debug(reply.show()) if reply is None: logging.warn("Get feature request failed") return None, None, None for idx in range(len(reply.ports)): if reply.ports[idx].port_no == port_no: return (reply.ports[idx].hw_addr, reply.ports[idx].config, reply.ports[idx].advertised) logging.warn("Did not find port number for port config") return None, None, None
def port_config_get(controller, port_no): """ Get a port's configuration Gets the switch feature configuration and grabs one port's configuration @returns (hwaddr, config, advert) The hwaddress, configuration and advertised values """ request = ofp.message.features_request() reply, pkt = controller.transact(request) logging.debug(reply.show()) if reply is None: logging.warn("Get feature request failed") return None, None, None for idx in range(len(reply.ports)): if reply.ports[idx].port_no == port_no: return (reply.ports[idx].hw_addr, reply.ports[idx].config, reply.ports[idx].advertised) logging.warn("Did not find port number for port config") return None, None, None