os_pcap.h
Packet Info
-
struct ouster::sensor_utils::packet_info
Public Types
-
using ts = std::chrono::microseconds
Microsecond timestamp.
Public Members
-
std::string dst_ip
The destination IP.
-
std::string src_ip
The source IP.
-
int dst_port
The destination port.
-
int src_port
The source port.
-
size_t payload_size
The size of the packet payload.
-
int fragments_in_packet
Number of fragments in the packet.
-
int ip_version
The ip version, 4 or 6.
-
int encapsulation_protocol
PCAP encapsulation type.
-
int network_protocol
IANA protocol number. Always 17 (UDP)
-
using ts = std::chrono::microseconds
-
std::ostream &ouster::sensor_utils::operator<<(std::ostream &stream_in, const packet_info &data)
To string method for packet info structs.
- Parameters
stream_in – [inout] The pre-existing ostream to concat with data.
data – [in] The packet_info to output.
- Returns
The new output stream containing concatted stream_in and data.
Functions
-
std::shared_ptr<playback_handle> ouster::sensor_utils::replay_initialize(const std::string &file)
Initialize the stepwise playback handle.
- Parameters
file – [in] The file path of the pcap file.
- Returns
A handle to the initialized playback struct.
-
void ouster::sensor_utils::replay_uninitialize(playback_handle &handle)
Uninitialize the stepwise playback handle.
- Parameters
handle – [in] A handle to the initialized playback struct.
-
void ouster::sensor_utils::replay_reset(playback_handle &handle)
Restart playback from the beginning of the pcap file.
- Parameters
handle – [in] A handle to the initialized playback struct.
-
bool ouster::sensor_utils::next_packet_info(playback_handle &handle, packet_info &info)
Return the information on the next packet avaliable in the playback_handle. This must be called BEFORE calling the read_next_packet function.
- Parameters
handle – [in] The playback handle.
info – [out] The returned information on the next packet.
- Returns
The status on whether there is a new packet or not.
-
size_t ouster::sensor_utils::read_packet(playback_handle &handle, uint8_t *buf, size_t buffer_size)
Read the data from the next packet avaliable in the playback_handle. This must be called AFTER calling the next_packet_info function.
- Parameters
handle – [in] The playback handle.
buf – [out] The buffer to write the recieved data to (Must be sized appropriately.
buffer_size – [in] The size of the output buffer.
- Returns
0 on no new packet, > 0 the size of the bytes recieved.
-
std::shared_ptr<record_handle> ouster::sensor_utils::record_initialize(const std::string &file, const std::string &src_ip, const std::string &dst_ip, int frag_size, bool use_sll_encapsulation = false)
Initialize the record handle for recording pcap files.
- Parameters
file – [in] The file path to the target pcap to record to.
src_ip – [in] The source address to label the packets with.
dst_ip – [in] The destination address to label the packets with.
frag_size – [in] The size of the fragments for packet fragmentation.
use_sll_encapsulation – [in] Whether to use sll encapsulation.
-
void ouster::sensor_utils::record_uninitialize(record_handle &handle)
Uninitialize the record handle, closing underlying file.
- Parameters
handle – [in] An initialized handle for the recording state.
-
void ouster::sensor_utils::record_packet(record_handle &handle, int src_port, int dst_port, const uint8_t *buf, size_t buffer_size, uint64_t microsecond_timestamp)
Record a buffer to a record_handle pcap file.
- Parameters
handle – [in] The record handle that record_initialize has initted.
src_port – [in] The source port to label the packets with.
dst_port – [in] The destination port to label the packets with.
buf – [in] The buffer to record to the pcap file.
buffer_size – [in] The size of the buffer to record to the pcap file.
microsecond_timestamp – [in] The timestamp to record the packet as microseconds.