Пример #1
0
 def _create_scion_pkt(self, ext):
     """
     Create a packet that uses a SCION path
     """
     cmn_hdr, addr_hdr, udp_hdr, payload = self._create_hdrs()
     return SCIONL4Packet.from_values(
         cmn_hdr, addr_hdr, self.seg.get_path(True), [ext], udp_hdr, payload)
Пример #2
0
 def _build_pkt(self):
     cmn_hdr, addr_hdr = build_base_hdrs(self.addr, self.dst)
     l4_hdr = self._create_l4_hdr()
     spkt = SCIONL4Packet.from_values(cmn_hdr, addr_hdr, SCIONPath(), [],
                                      l4_hdr)
     spkt.set_payload(self._create_payload(spkt))
     spkt.update()
     return spkt
Пример #3
0
 def test(self, inner_values, pldraw, set_pld, upd_hdrs):
     inst = SCIONL4Packet.from_values("cmn hdr", "addr hdr", "path hdr",
                                      "ext hdrs", "l4 hdr")
     # Tests
     ntools.assert_is_instance(inst, SCIONL4Packet)
     inner_values.assert_called_once_with(inst, "cmn hdr", "addr hdr",
                                          "path hdr", "ext hdrs", "l4 hdr")
     set_pld.assert_called_once_with(inst, pldraw.return_value)
     upd_hdrs.assert_called_once_with(inst)
Пример #4
0
 def _create_sibra_pkt(self, ext):
     """
     Create a packet that uses a SIBRA path
     """
     ext.setup = False
     ext.active_blocks = self.blocks[:1]
     cmn_hdr, addr_hdr, udp_hdr, payload = self._create_hdrs()
     return SCIONL4Packet.from_values(cmn_hdr, addr_hdr, SCIONPath(), [ext],
                                      udp_hdr, payload)
Пример #5
0
 def _build_pkt(self, path=None):
     cmn_hdr, addr_hdr = build_base_hdrs(self.dst, self.addr)
     l4_hdr = self._create_l4_hdr()
     extensions = self._create_extensions()
     if path is None:
         path = self.path_meta.fwd_path()
     spkt = SCIONL4Packet.from_values(cmn_hdr, addr_hdr, path, extensions,
                                      l4_hdr)
     spkt.set_payload(self._create_payload(spkt))
     spkt.update()
     return spkt
Пример #6
0
 def _create_reg_pkt(self, type_, remote=False):
     if remote:
         dst_ia = self.remote
         path = self.seg.get_path(True)
     else:
         dst_ia = self.addr.isd_as
         path = SCIONPath()
     pcb = self._create_reg_pcb(remote)
     pld = PathRecordsReg.from_values({type_: [pcb]})
     dest = SCIONAddr.from_values(dst_ia, SVCType.PS_A)
     cmn_hdr, addr_hdr = build_base_hdrs(self.addr, dest)
     udp_hdr = SCIONUDPHeader.from_values(self.addr, self._port, dest, 0)
     return SCIONL4Packet.from_values(cmn_hdr, addr_hdr, path, [], udp_hdr,
                                      pld)
Пример #7
0
 def _build_packet(self, dst_host=None, path=None, ext_hdrs=(),
                   dst_ia=None, payload=None, dst_port=0):
     if dst_host is None:
         dst_host = HostAddrNone()
     if dst_ia is None:
         dst_ia = self.addr.isd_as
     if path is None:
         path = SCIONPath()
     if payload is None:
         payload = PayloadRaw()
     dst_addr = SCIONAddr.from_values(dst_ia, dst_host)
     cmn_hdr, addr_hdr = build_base_hdrs(dst_addr, self.addr)
     udp_hdr = SCIONUDPHeader.from_values(
         self.addr, self._port, dst_addr, dst_port)
     return SCIONL4Packet.from_values(
         cmn_hdr, addr_hdr, path, ext_hdrs, udp_hdr, payload)