コード例 #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)
コード例 #2
0
ファイル: runtime.py プロジェクト: Phi-Ho/pyretic
 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)
コード例 #3
0
ファイル: runtime.py プロジェクト: adrian-istrate/pyretic
 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)
コード例 #4
0
ファイル: std.py プロジェクト: shenhaozr/pyretic
 def __repr__(self):
     return "***breakpoint on %s***" % util.repr_plus([self.policy])
コード例 #5
0
ファイル: language.py プロジェクト: HaiVu/pyretic
 def __repr__(self):
     return "move:\n%s" % util.repr_plus(self.map.items())
コード例 #6
0
ファイル: language.py プロジェクト: HaiVu/pyretic
 def __repr__(self):
     return "negate:\n%s" % util.repr_plus([self.policy_to_negate])
コード例 #7
0
ファイル: language.py プロジェクト: HaiVu/pyretic
 def __repr__(self):
     return "pop:\n%s" % util.repr_plus(self.fields)
コード例 #8
0
 def __repr__(self):
     return "difference:\n%s" % util.repr_plus([self.f1,self.f2])
コード例 #9
0
 def __repr__(self):
     return "dropped:\n%s" % util.repr_plus([self])
コード例 #10
0
 def __repr__(self):
     return "pop:\n%s" % util.repr_plus(self.fields)
コード例 #11
0
ファイル: language.py プロジェクト: wicaksana/sdx-pyretic
 def __repr__(self):
     return "match_prefix_set:\n%s" % util.repr_plus([self.pfxes])
コード例 #12
0
 def __repr__(self):
     return "dropped:\n%s" % util.repr_plus([self])
コード例 #13
0
ファイル: std.py プロジェクト: StonyBrookUniversity/pyretic
 def __repr__(self):
     return "***breakpoint on %s***" % util.repr_plus([self.policy])
コード例 #14
0
ファイル: std.py プロジェクト: adrian-istrate/pyretic
 def __repr__(self):
     return "***breakpoint on %s***\n%s" % (self.condition,util.repr_plus([self.policy]))
コード例 #15
0
ファイル: language.py プロジェクト: JeevaMunusamy/sdx
 def __repr__(self):
     return "match_prefix_set:\n%s" % util.repr_plus([self.pfxes])
コード例 #16
0
 def __repr__(self):
     return "%s:\n%s" % (self.name(),util.repr_plus(self.policies))
コード例 #17
0
 def __repr__(self):
     return "negate:\n%s" % util.repr_plus([self.to_negate])
コード例 #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]))
コード例 #19
0
 def __repr__(self):
     return "move:\n%s" % util.repr_plus(self.map.items())