示例#1
0
 def _build_meta(self,
                 ia=None,
                 host=None,
                 path=None,
                 port=0,
                 reuse=False,
                 one_hop=False):
     if ia is None:
         ia = self.addr.isd_as
     if path is None:
         path = SCIONPath()
     if not one_hop:
         return self._DefaultMeta.from_values(ia,
                                              host,
                                              path,
                                              port=port,
                                              reuse=reuse)
     # One hop path extension in handled in a different way in TCP and UDP
     if self._DefaultMeta == TCPMetadata:
         return TCPMetadata.from_values(ia,
                                        host,
                                        path,
                                        port=port,
                                        reuse=reuse,
                                        flags=TCPFlags.ONEHOPPATH)
     return UDPMetadata.from_values(ia,
                                    host,
                                    path,
                                    port=port,
                                    reuse=reuse,
                                    ext_hdrs=[OneHopPathExt()])
示例#2
0
 def _mk_prop_pcb_meta(self, pcb, dst_ia, egress_if):
     ts = pcb.get_timestamp()
     asm = self._create_asm(pcb.p.ifID, egress_if, ts, pcb.last_hof())
     if not asm:
         return None, None
     pcb.add_asm(asm)
     pcb.sign(self.signing_key)
     one_hop_path = self._create_one_hop_path(egress_if)
     if self.DefaultMeta == TCPMetadata:
         return pcb, self.DefaultMeta.from_values(ia=dst_ia,
                                                  host=SVCType.BS_A,
                                                  path=one_hop_path,
                                                  flags=TCPFlags.ONEHOPPATH)
     return pcb, UDPMetadata.from_values(ia=dst_ia,
                                         host=SVCType.BS_A,
                                         path=one_hop_path,
                                         ext_hdrs=[OneHopPathExt()])
示例#3
0
 def _create_extensions(self):
     return [OneHopPathExt.from_values()]
示例#4
0
 def _create_extensions(self):
     exts = []
     exts.append(OneHopPathExt.from_values())
     exts.append(SCMPExt.from_values(error=False))
     return exts
示例#5
0
 def _create_extensions(self):
     exts = []
     for i in range(MAX_HOPBYHOP_EXT + 1):
         exts.append(OneHopPathExt.from_values())
     return exts