Exemple #1
0
 def handle_packet_in(self, concrete_pkt):
     pyretic_pkt = self.concrete2pyretic(concrete_pkt)
     if self.debug_packet_in:
         debugger.set_trace()
     if USE_IPDB:
         with debugger.launch_ipdb_on_exception():
             if self.mode == 'interpreted':
                 output = self.policy.eval(pyretic_pkt)
             else:
                 (output, eval_trace) = self.policy.track_eval(pyretic_pkt,
                                                               dry=False)
                 self.reactive0(pyretic_pkt, output, eval_trace)
     else:
         try:
             if self.mode == 'interpreted':
                 output = self.policy.eval(pyretic_pkt)
             else:
                 (output, eval_trace) = self.policy.track_eval(pyretic_pkt,
                                                               dry=False)
                 self.reactive0(pyretic_pkt, output, eval_trace)
         except:
             type, value, tb = sys.exc_info()
             traceback.print_exc()
             debugger.post_mortem(tb)
     if self.show_traces:
         print "<<<<<<<<< RECV <<<<<<<<<<<<<<<<<<<<<<<<<<"
         print util.repr_plus([pyretic_pkt], sep="\n\n")
         print
         print ">>>>>>>>> SEND >>>>>>>>>>>>>>>>>>>>>>>>>>"
         print util.repr_plus(output, sep="\n\n")
         print
     map(self.send_packet, output)
Exemple #2
0
 def handle_packet_in(self, concrete_pkt):
     pyretic_pkt = self.concrete2pyretic(concrete_pkt)
     if self.debug_packet_in:
         debugger.set_trace()
     if USE_IPDB:
          with debugger.launch_ipdb_on_exception():
              if self.mode == 'interpreted':
                  output = self.policy.eval(pyretic_pkt)
              else:
                  (output,eval_trace) = self.policy.track_eval(pyretic_pkt,dry=False)
                  self.reactive0(pyretic_pkt,output,eval_trace)
     else:
         try:
             if self.mode == 'interpreted':
                 output = self.policy.eval(pyretic_pkt)
             else:
                 (output,eval_trace) = self.policy.track_eval(pyretic_pkt,dry=False)
                 self.reactive0(pyretic_pkt,output,eval_trace)
         except :
             type, value, tb = sys.exc_info()
             traceback.print_exc()
             debugger.post_mortem(tb)
     if self.show_traces or True:
         self.trace("<<<<<<<<< RECV <<<<<<<<<<<<<<<<<<<<<<<<<<", timeStamped=True)
         self.trace(util.repr_plus([pyretic_pkt], sep="\n\n"))
         self.trace("")
         self.trace(">>>>>>>>> SEND >>>>>>>>>>>>>>>>>>>>>>>>>>", timeStamped=True)
         self.trace(util.repr_plus(output, sep="\n\n"))
         self.trace("")
     map(self.send_packet,output)
Exemple #3
0
 def handle_packet_in(self, concrete_pkt):
     pyretic_pkt = self.concrete2pyretic(concrete_pkt)
     if self.debug_packet_in:
         debugger.set_trace()
     if USE_IPDB:
          with debugger.launch_ipdb_on_exception():
              if self.mode == 'interpreted':
                  output = self.policy.eval(pyretic_pkt)
              else:
                  (output,traversed) = self.policy.track_eval(pyretic_pkt)
                  self.reactive0(pyretic_pkt,output,traversed)
     else:
         try:
             if self.mode == 'interpreted':
                 output = self.policy.eval(pyretic_pkt)
             else:
                 (output,traversed) = self.policy.track_eval(pyretic_pkt)
                 self.reactive0(pyretic_pkt,output,traversed)
         except :
             type, value, tb = sys.exc_info()
             traceback.print_exc()
             debugger.post_mortem(tb)
     if self.show_traces:
         print "<<<<<<<<< RECV <<<<<<<<<<<<<<<<<<<<<<<<<<"
         print util.repr_plus([pyretic_pkt], sep="\n\n")
         print
         print ">>>>>>>>> SEND >>>>>>>>>>>>>>>>>>>>>>>>>>"
         print util.repr_plus(output, sep="\n\n")
         print
     map(self.send_packet,output)
Exemple #4
0
 def __repr__(self):
     return "***breakpoint on %s***" % util.repr_plus([self.policy])
Exemple #5
0
 def __repr__(self):
     return "move:\n%s" % util.repr_plus(self.map.items())
Exemple #6
0
 def __repr__(self):
     return "negate:\n%s" % util.repr_plus([self.policy_to_negate])
Exemple #7
0
 def __repr__(self):
     return "pop:\n%s" % util.repr_plus(self.fields)
Exemple #8
0
 def __repr__(self):
     return "difference:\n%s" % util.repr_plus([self.f1,self.f2])
 def __repr__(self):
     return "dropped:\n%s" % util.repr_plus([self])
 def __repr__(self):
     return "pop:\n%s" % util.repr_plus(self.fields)
Exemple #11
0
 def __repr__(self):
     return "match_prefix_set:\n%s" % util.repr_plus([self.pfxes])
 def __repr__(self):
     return "dropped:\n%s" % util.repr_plus([self])
Exemple #13
0
 def __repr__(self):
     return "***breakpoint on %s***" % util.repr_plus([self.policy])
Exemple #14
0
 def __repr__(self):
     return "***breakpoint on %s***\n%s" % (self.condition,util.repr_plus([self.policy]))
Exemple #15
0
 def __repr__(self):
     return "match_prefix_set:\n%s" % util.repr_plus([self.pfxes])
Exemple #16
0
 def __repr__(self):
     return "%s:\n%s" % (self.name(),util.repr_plus(self.policies))
 def __repr__(self):
     return "negate:\n%s" % util.repr_plus([self.to_negate])
Exemple #18
0
 def __repr__(self):
     return "if\n%s\nthen\n%s\nelse\n%s" % (util.repr_plus([self.pred]),
                                            util.repr_plus([self.t_branch]),
                                            util.repr_plus([self.f_branch]))
 def __repr__(self):
     return "move:\n%s" % util.repr_plus(self.map.items())