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): """ 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 flow_entry_install(controller, flow_type, match=None, instructions=None, prio=None, flags=None, table_id=0, hard_timeout=None, idle_timeout=None, out_group=ofp.OFPG_ANY, out_port=ofp.OFPP_ANY, buffer_id=ofp.OFP_NO_BUFFER): request = flow_mod_class[flow_type](table_id=table_id, match=match, instructions=instructions, buffer_id=buffer_id, out_group=out_group, out_port=out_port, priority=prio, flags=flags, hard_timeout=hard_timeout, idle_timeout=idle_timeout) controller.message_send(request) # print(request.show()) return request
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 entry_mod(controller, message_class, match=None, instructions=None, buffer_id=ofp.OFP_NO_BUFFER, out_group=ofp.OFPG_ANY, out_port=ofp.OFPP_ANY, priority=0, flags=0): request = message_class( table_id=cmd_param['table'], match=match, instructions=instructions, buffer_id=buffer_id, out_group=out_group, out_port=out_port, priority=priority, flags=flags, ) controller.message_send(request)
def flow_entry_install(controller, flow_type, match=None, instructions=None, prio=None, flags=None, table_id=0, hard_timeout=None, idle_timeout=None, out_group=ofp.OFPG_ANY, out_port=ofp.OFPP_ANY, buffer_id=ofp.OFP_NO_BUFFER): request = flow_mod_class[flow_type]( table_id=table_id, match=match, instructions=instructions, buffer_id=buffer_id, out_group=out_group, out_port=out_port, priority=prio, flags=flags, hard_timeout=hard_timeout, idle_timeout=idle_timeout ) controller.message_send(request) # print(request.show()) return request