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)
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
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)
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)
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
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)
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)