mirror of https://github.com/PentHertz/srsLTE.git
fix gtpu_test memcpy param overlap bug
This commit is contained in:
parent
b9271f26da
commit
ee3d8a5c77
|
@ -66,7 +66,7 @@ public:
|
||||||
|
|
||||||
int GTPU_PORT = 2152;
|
int GTPU_PORT = 2152;
|
||||||
|
|
||||||
srslte::unique_byte_buffer_t encode_gtpu_packet(srslte::span<uint8_t> data,
|
srslte::unique_byte_buffer_t encode_ipv4_packet(srslte::span<uint8_t> data,
|
||||||
uint32_t teid,
|
uint32_t teid,
|
||||||
const struct sockaddr_in& src_sockaddr_in,
|
const struct sockaddr_in& src_sockaddr_in,
|
||||||
const struct sockaddr_in& dest_sockaddr_in)
|
const struct sockaddr_in& dest_sockaddr_in)
|
||||||
|
@ -83,6 +83,16 @@ srslte::unique_byte_buffer_t encode_gtpu_packet(srslte::span<uint8_t> data,
|
||||||
memcpy(pdu->msg + pdu->N_bytes, data.data(), data.size());
|
memcpy(pdu->msg + pdu->N_bytes, data.data(), data.size());
|
||||||
pdu->N_bytes += data.size();
|
pdu->N_bytes += data.size();
|
||||||
|
|
||||||
|
return pdu;
|
||||||
|
}
|
||||||
|
|
||||||
|
srslte::unique_byte_buffer_t encode_gtpu_packet(srslte::span<uint8_t> 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
|
// header
|
||||||
srslte::gtpu_header_t header;
|
srslte::gtpu_header_t header;
|
||||||
header.flags = GTPU_FLAGS_VERSION_V1 | GTPU_FLAGS_GTP_PROTOCOL;
|
header.flags = GTPU_FLAGS_VERSION_V1 | GTPU_FLAGS_GTP_PROTOCOL;
|
||||||
|
@ -146,10 +156,7 @@ int test_gtpu_direct_tunneling()
|
||||||
pdu->N_bytes = 10;
|
pdu->N_bytes = 10;
|
||||||
for (size_t sn = 6; sn < 10; ++sn) {
|
for (size_t sn = 6; sn < 10; ++sn) {
|
||||||
std::vector<uint8_t> data(10, sn);
|
std::vector<uint8_t> data(10, sn);
|
||||||
pdu = encode_gtpu_packet(data, senb_teid_in, sgw_sockaddr, senb_sockaddr);
|
pdu = encode_ipv4_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);
|
|
||||||
senb_pdcp.push_buffered_pdu(sn, std::move(pdu));
|
senb_pdcp.push_buffered_pdu(sn, std::move(pdu));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue