diff --git a/srsenb/test/upper/gtpu_test.cc b/srsenb/test/upper/gtpu_test.cc index 9ee6afea2..4827c9415 100644 --- a/srsenb/test/upper/gtpu_test.cc +++ b/srsenb/test/upper/gtpu_test.cc @@ -66,7 +66,7 @@ public: int GTPU_PORT = 2152; -srslte::unique_byte_buffer_t encode_gtpu_packet(srslte::span data, +srslte::unique_byte_buffer_t encode_ipv4_packet(srslte::span data, uint32_t teid, const struct sockaddr_in& src_sockaddr_in, const struct sockaddr_in& dest_sockaddr_in) @@ -83,6 +83,16 @@ srslte::unique_byte_buffer_t encode_gtpu_packet(srslte::span data, memcpy(pdu->msg + pdu->N_bytes, data.data(), data.size()); pdu->N_bytes += data.size(); + return pdu; +} + +srslte::unique_byte_buffer_t encode_gtpu_packet(srslte::span data, + uint32_t teid, + const struct sockaddr_in& src_sockaddr_in, + const struct sockaddr_in& dest_sockaddr_in) +{ + srslte::unique_byte_buffer_t pdu = encode_ipv4_packet(data, teid, src_sockaddr_in, dest_sockaddr_in); + // header srslte::gtpu_header_t header; header.flags = GTPU_FLAGS_VERSION_V1 | GTPU_FLAGS_GTP_PROTOCOL; @@ -146,10 +156,7 @@ int test_gtpu_direct_tunneling() pdu->N_bytes = 10; for (size_t sn = 6; sn < 10; ++sn) { std::vector data(10, sn); - pdu = encode_gtpu_packet(data, senb_teid_in, sgw_sockaddr, senb_sockaddr); - // remove gtpu header - pdu->N_bytes -= 8u; - memcpy(pdu->msg, pdu->msg + 8u, pdu->N_bytes); + pdu = encode_ipv4_packet(data, senb_teid_in, sgw_sockaddr, senb_sockaddr); senb_pdcp.push_buffered_pdu(sn, std::move(pdu)); }