def __init__(self, dpid, name=None, ports=4, miss_send_len=128, n_buffers=100, n_tables=1, capabilities=None, can_connect_to_endhosts=True): NXSoftwareSwitch.__init__(self, dpid, name, ports, miss_send_len, n_buffers, n_tables, capabilities) # Whether this is a core or edge switch self.can_connect_to_endhosts = can_connect_to_endhosts self.create_connection = None self.failed = False self.log = logging.getLogger("FuzzSoftwareSwitch(%d)" % dpid) if logging.getLogger().getEffectiveLevel() <= logging.DEBUG: def _print_entry_remove(table_mod): if table_mod.removed != []: self.log.debug("Table entry removed %s" % str(table_mod.removed)) self.table.addListener(FlowTableModification, _print_entry_remove) def error_handler(e): self.log.exception(e) raise e # controller (ip, port) -> connection self.cid2connection = {} self.error_handler = error_handler self.controller_info = []
def __init__(self, dpid, name=None, ports=4, miss_send_len=128, n_buffers=100, n_tables=1, capabilities=None, can_connect_to_endhosts=True): NXSoftwareSwitch.__init__(self, dpid, name, ports, miss_send_len, n_buffers, n_tables, capabilities) # Whether this is a core or edge switch self.can_connect_to_endhosts = can_connect_to_endhosts self.create_connection = None self.failed = False self.log = logging.getLogger("FuzzSoftwareSwitch(%d)" % dpid) if logging.getLogger().getEffectiveLevel() <= logging.DEBUG: def _print_entry_remove(table_mod): if table_mod.removed != []: self.log.debug("Table entry removed %s" % str(table_mod.removed)) self.table.addListener(FlowTableModification, _print_entry_remove) def error_handler(e): self.log.exception(e) raise e self.cid2connection = {} self.error_handler = error_handler self.controller_info = [] # Tell our buffer to insert directly to our flow table whenever commands are let through by control_flow. self.delay_flow_mods = False self.openflow_buffer = OpenFlowBuffer() self.barrier_deque = None # Boolean representing whether to use randomize_flow_mod mode to prioritize the order in which flow_mods are processed. self.randomize_flow_mod_order = False # Uninitialized RNG (initialize through randomize_flow_mods()) self.random = None
def __init__ (self, dpid, name=None, ports=4, miss_send_len=128, n_buffers=100, n_tables=1, capabilities=None, can_connect_to_endhosts=True): NXSoftwareSwitch.__init__(self, dpid, name, ports, miss_send_len, n_buffers, n_tables, capabilities) # Whether this is a core or edge switch self.can_connect_to_endhosts = can_connect_to_endhosts self.create_connection = None self.failed = False self.log = logging.getLogger("FuzzSoftwareSwitch(%d)" % dpid) def error_handler(e): self.log.exception(e) raise e # controller (ip, port) -> connection self.uuid2connection = {} self.error_handler = error_handler self.controller_info = []
def __init__ (self, dpid, name=None, ports=4, miss_send_len=128, n_buffers=100, n_tables=1, capabilities=None, can_connect_to_endhosts=True): NXSoftwareSwitch.__init__(self, dpid, name, ports, miss_send_len, n_buffers, n_tables, capabilities) # Whether this is a core or edge switch self.can_connect_to_endhosts = can_connect_to_endhosts self.failed = False self.log = logging.getLogger("FuzzSoftwareSwitch(%d)" % dpid) def error_handler(e): self.log.exception(e) raise e # controller (ip, port) -> connection self.uuid2connection = {} # We keep a finite state machine for each connection to track whether the # initialization handshake has completed self.connection2fsm = {} self.error_handler = error_handler self.controller_info = []
def __init__(self, dpid, name=None, ports=4, miss_send_len=128, n_buffers=100, n_tables=1, capabilities=None, can_connect_to_endhosts=True): NXSoftwareSwitch.__init__(self, dpid, name, ports, miss_send_len, n_buffers, n_tables, capabilities) # Whether this is a core or edge switch self.can_connect_to_endhosts = can_connect_to_endhosts self.create_connection = None self.failed = False self.log = logging.getLogger("FuzzSoftwareSwitch(%d)" % dpid) if logging.getLogger().getEffectiveLevel() <= logging.DEBUG: def _print_entry_remove(table_mod): if table_mod.removed != []: self.log.debug("Table entry removed %s" % str(table_mod.removed)) self.table.addListener(FlowTableModification, _print_entry_remove) def error_handler(e): self.log.exception(e) raise e self.cid2connection = {} self.error_handler = error_handler self.controller_info = [] # Tell our buffer to insert directly to our flow table whenever commands are let through by control_flow. self.delay_flow_mods = False self.openflow_buffer = OpenFlowBuffer() self.barrier_deque = None # Boolean representing whether to use randomize_flow_mod mode to prioritize the order in which flow_mods are processed. self.randomize_flow_mod_order = False # Uninitialized RNG (initialize through randomize_flow_mods()) self.random = None self.port_violations = []