예제 #1
0
 def _get_nom_snapshot(self, message):
     snapshot = self.snapshotter.get_snapshot()
     response = SyncMessage(type="RESPONSE",
                            messageClass="NOMSnapshot",
                            time=SyncTime.now(),
                            xid=message.xid,
                            value=snapshot)
     self.send(response)
예제 #2
0
 def __init__(self, pending_message, b64_packet, time=None, send_event=False):
   # TODO(cs): boolean flag is ugly. Should use subclasses, but EventMixin
   # doesn't support addListener() on super/subclasses.
   super(PendingMessage, self).__init__()
   self.time = time if time else SyncTime.now()
   self.pending_message = pending_message
   self.b64_packet = b64_packet
   self.send_event = send_event
예제 #3
0
 def _get_deterministic_value(self, message):
     value = self.state_master.get_deterministic_value(
         self.controller, message.name)
     response = SyncMessage(type="RESPONSE",
                            messageClass="DeterministicValue",
                            time=SyncTime.now(),
                            xid=message.xid,
                            value=value)
     self.send(response)
예제 #4
0
파일: input_logger.py 프로젝트: NetSys/sts
 def __init__(self, output_path=None):
   '''
   Automatically generate an output_path in input_traces/
   if one is not provided.
   '''
   self.output_path = output_path
   self.dp_events = []
   self.last_time = SyncTime.now()
   self._disallow_timeouts = False
   self._events_after_close = []
   self.output = None
예제 #5
0
 def __init__(self,
              pending_message,
              b64_packet,
              time=None,
              send_event=False):
     # TODO(cs): boolean flag is ugly. Should use subclasses, but EventMixin
     # doesn't support addListener() on super/subclasses.
     super(PendingMessage, self).__init__()
     self.time = time if time else SyncTime.now()
     self.pending_message = pending_message
     self.b64_packet = b64_packet
     self.send_event = send_event
예제 #6
0
파일: base.py 프로젝트: narayana1208/sts
    def get_deterministic_value(self, controller, name, xid):
        # TODO(cs): xid arguably shouldn't be known to STS
        value = None
        if name == "gettimeofday":
            value = SyncTime.now()
        else:
            raise ValueError("unsupported deterministic value: %s" % name)

        # TODO(cs): implement Andi's improved gettime heuristic
        if self.record_deterministic_values:
            self.input_logger.log_input_event(DeterministicValue(controller.cid, name, value, time=value))
        controller.sync_connection.send_deterministic_value(xid, value)
예제 #7
0
파일: base.py 프로젝트: raunaks42/SDNRacer
    def get_deterministic_value(self, controller, name, xid):
        # TODO(cs): xid arguably shouldn't be known to STS
        value = None
        if name == "gettimeofday":
            value = SyncTime.now()
        else:
            raise ValueError("unsupported deterministic value: %s" % name)

        # TODO(cs): implement Andi's improved gettime heuristic
        if self.record_deterministic_values:
            self.input_logger.log_input_event(
                DeterministicValue(controller.cid, name, value, time=value))
        controller.sync_connection.send_deterministic_value(xid, value)
예제 #8
0
파일: base.py 프로젝트: colin-scott/sts
  def get_deterministic_value(self, controller, name):
    value = None
    if name == "gettimeofday":
      value = SyncTime.now()
    else:
      raise ValueError("unsupported deterministic value: %s" % name)

    # TODO(cs): implement Andi's improved gettime heuristic, and uncomment
    #           the following statement
    #self.input_logger.log_input_event(klass="DeterministicValue",
    #                                  controller_id=controller.uuid,
    #                                  time=time, fingerprint="null",
    #                                  name=name, value=value)
    return value
예제 #9
0
파일: base.py 프로젝트: I201821180B/sts
    def get_deterministic_value(self, controller, name):
        value = None
        if name == "gettimeofday":
            value = SyncTime.now()
        else:
            raise ValueError("unsupported deterministic value: %s" % name)

        # TODO(cs): implement Andi's improved gettime heuristic, and uncomment
        #           the following statement
        #self.input_logger.log_input_event(klass="DeterministicValue",
        #                                  controller_id=controller.uuid,
        #                                  time=time, fingerprint="null",
        #                                  name=name, value=value)
        return value
예제 #10
0
 def __init__(self, prefix="e", label=None, time=None, dependent_labels=None):
   if label is None:
     label_id = Event._label_gen.next()
     label = prefix + str(label_id)
     while label_id in Event._all_label_ids:
       label_id = Event._label_gen.next()
       label = prefix + str(label_id)
   if time is None:
     # TODO(cs): compress time for interactive mode?
     time = SyncTime.now()
   self.label = label
   Event._all_label_ids.add(int(label[1:]))
   self.time = time
   # Add on dependent labels to appease log_processing.superlog_parser.
   # TODO(cs): Replayer shouldn't depend on superlog_parser
   self.dependent_labels = dependent_labels if dependent_labels else []
예제 #11
0
 def __init__(self,
              prefix="e",
              label=None,
              time=None,
              dependent_labels=None):
     if label is None:
         label_id = Event._label_gen.next()
         label = prefix + str(label_id)
         while label_id in Event._all_label_ids:
             label_id = Event._label_gen.next()
             label = prefix + str(label_id)
     if time is None:
         # TODO(cs): compress time for interactive mode?
         time = SyncTime.now()
     self.label = label
     Event._all_label_ids.add(int(label[1:]))
     self.time = time
     # Add on dependent labels to appease log_processing.superlog_parser.
     # TODO(cs): Replayer shouldn't depend on superlog_parser
     self.dependent_labels = dependent_labels if dependent_labels else []
예제 #12
0
파일: replay_event.py 프로젝트: NetSys/sts
 def __init__(self, prefix="e", label=None, round=-1, time=None, dependent_labels=None,
              prunable=True):
   if label is None:
     label_id = Event._label_gen.next()
     label = prefix + str(label_id)
     while label_id in Event._all_label_ids:
       label_id = Event._label_gen.next()
       label = prefix + str(label_id)
   if time is None:
     # TODO(cs): compress time for interactive mode?
     time = SyncTime.now()
   self.label = label
   Event._all_label_ids.add(int(label[1:]))
   self.round = round
   self.time = time
   # Add on dependent labels to appease log_processing.superlog_parser.
   # TODO(cs): Replayer shouldn't depend on superlog_parser
   self.dependent_labels = dependent_labels if dependent_labels else []
   # Whether this event should be prunable by MCSFinder. Initialization
   # inputs are not pruned.
   self.prunable = True
예제 #13
0
 def __init__(self):
   self.last_time = SyncTime.now()
   self._disallow_timeouts = False
   self._events_after_close = []
   self.output = None
   self.output_path = ""
예제 #14
0
 def _get_nom_snapshot(self, message):
   snapshot = self.snapshotter.get_snapshot()
   response = SyncMessage(type="RESPONSE", messageClass="NOMSnapshot", time=SyncTime.now(), xid = message.xid, value=snapshot)
   self.send(response)
예제 #15
0
 def _get_deterministic_value(self, message):
   value = self.state_master.get_deterministic_value(self.controller, message.name)
   response = SyncMessage(type="RESPONSE", messageClass="DeterministicValue", time=SyncTime.now(), xid = message.xid, value=value)
   self.send(response)
예제 #16
0
 def get_deterministic_value(self, controller, name):
     if name == "gettimeofday":
         return SyncTime.now()
예제 #17
0
 def get_deterministic_value(self, controller, name, xid):
   if name == "gettimeofday":
     return SyncTime.now()