30 #include <netinet/in.h>
44 struct doca_rmax_in_stream_result *comp = doca_rmax_in_stream_event_rx_data_get_result(event_rx_data);
46 if (comp->elements_count == 0)
49 DOCA_LOG_INFO(
"Received %4d packet(s), first %lu last %lu", comp->elements_count, comp->ts_first, comp->ts_last);
54 uint8_t *header = comp->memblk_ptr_arr[0];
55 uint8_t *payload = comp->memblk_ptr_arr[1];
57 for (
size_t i = 0; i < comp->elements_count;
77 struct doca_rmax_stream_error *err = doca_rmax_in_stream_event_rx_data_get_error(event_rx_data);
80 DOCA_LOG_ERR(
"Error in Rx event: code=%d message=%s", err->code, err->message);
95 struct doca_rmax_in_stream *stream =
NULL;
96 struct doca_buf *buf =
NULL;
97 struct doca_rmax_flow *flow =
NULL;
100 memset(state, 0,
sizeof(*state));
101 state->
config = stream_config;
109 result = doca_rmax_init();
143 event_user_data.
ptr = (
void *)state;
176 result = doca_rmax_flow_create(&flow);
192 result = doca_rmax_flow_attach(flow, stream);
206 DOCA_LOG_ERR(
"Program exiting with failure to receive data. err=%s",
210 result = doca_rmax_flow_detach(flow, stream);
doca_error_t create_core_objects(struct program_core_objects *state, uint32_t max_bufs)
static doca_error_t open_doca_device_with_pci(const char *pcie_value, struct doca_dev **retval)
enum doca_error doca_error_t
DOCA API return codes.
DOCA_STABLE const char * doca_error_get_name(doca_error_t error)
Returns the string representation of an error code name.
DOCA_STABLE const char * doca_error_get_descr(doca_error_t error)
Returns the description string of an error code.
#define DOCA_LOG_ERR(format,...)
Generates an ERROR application log message.
#define DOCA_LOG_INFO(format,...)
Generates an INFO application log message.
#define DOCA_LOG_DBG(format,...)
Generates a DEBUG application log message.
DOCA_STABLE uint8_t doca_pe_progress(struct doca_pe *pe)
Run the progress engine.
char * hex_dump(const void *data, size_t size)
void rmax_create_stream_cleanup(struct rmax_program_state *state, struct doca_rmax_in_stream *stream, struct doca_rmax_flow *flow, struct doca_buf *buf)
doca_error_t rmax_stream_allocate_buf(struct rmax_program_state *state, struct doca_rmax_in_stream *stream, struct rmax_stream_config *config, struct doca_buf **buffer, uint16_t *stride_size)
doca_error_t rmax_stream_set_attributes(struct doca_rmax_in_stream *stream, struct rmax_stream_config *config)
doca_error_t rmax_flow_set_attributes(struct rmax_stream_config *config, struct doca_rmax_flow *flow)
doca_error_t rmax_stream_start(struct rmax_program_state *state)
void rx_success_cb(struct doca_rmax_in_stream_event_rx_data *event_rx_data, union doca_data event_user_data)
doca_error_t rmax_create_stream_hds(struct rmax_program_state *state, struct rmax_stream_config *stream_config)
DOCA_LOG_REGISTER(RMAX_CREATE_STREAM_HDS)
void rx_error_cb(struct doca_rmax_in_stream_event_rx_data *event_rx_data, union doca_data event_user_data)
struct program_core_objects core_objects
struct rmax_stream_config * config
uint16_t stride_size[MAX_BUFFERS]
char pci_address[DOCA_DEVINFO_PCI_ADDR_SIZE]
Convenience type for representing opaque data.