bugfix: send packet enable rehash

This commit is contained in:
luwenpeng
2023-10-15 21:05:06 +08:00
parent 2d9fecdf0f
commit db517610e0
3 changed files with 22 additions and 1 deletions

View File

@@ -449,7 +449,7 @@ static int send_packet_to_sf(marsio_buff_t *rx_buff, struct metadata *meta, stru
} }
int nsend = marsio_buff_datalen(rx_buff); int nsend = marsio_buff_datalen(rx_buff);
marsio_send_burst(packet_io->dev_endpoint.mr_path, thread_index, &rx_buff, 1); marsio_send_burst_with_options(packet_io->dev_endpoint.mr_path, thread_index, &rx_buff, 1, MARSIO_SEND_OPT_REHASH);
return nsend; return nsend;
} }

View File

@@ -387,6 +387,11 @@ int marsio_send_burst(struct mr_sendpath *sendpath, queue_id_t qid, marsio_buff_
return marsio_buff_datalen(mbufs[0]); return marsio_buff_datalen(mbufs[0]);
} }
int marsio_send_burst_with_options(struct mr_sendpath *sendpath, queue_id_t sid, marsio_buff_t *mbufs[], int nr_mbufs, uint16_t options)
{
return marsio_send_burst(sendpath, sid, mbufs, nr_mbufs);
}
// new add, only for gtest // new add, only for gtest
void marsio_set_recv_mbuff(struct mr_instance *instance, marsio_buff_t *mbuff) void marsio_set_recv_mbuff(struct mr_instance *instance, marsio_buff_t *mbuff)
{ {

View File

@@ -42,6 +42,21 @@ enum mr_buff_metadata_type
MR_BUFF_USER_0 = 254, MR_BUFF_USER_0 = 254,
}; };
typedef enum
{
/* 发送后不释放数据包,由应用自行释放数据包 */
MARSIO_SEND_OPT_NO_FREE = 1 << 0,
/* 发送时计算发包哈希值,用于分流 */
MARSIO_SEND_OPT_REHASH = 1 << 1,
/* 快速报文路径 */
MARSIO_SEND_OPT_FAST = 1 << 2,
/* 报文追踪标记 */
MARSIO_SEND_OPT_TRACE = 1 << 3,
/* 控制报文标记 */
MARSIO_SEND_OPT_CTRL = 1 << 4
} marsio_opt_send_t;
struct mr_instance *marsio_create(); struct mr_instance *marsio_create();
int marsio_destory(struct mr_instance *instance); int marsio_destory(struct mr_instance *instance);
@@ -81,6 +96,7 @@ void marsio_buff_set_ctrlbuf(marsio_buff_t *m);
int marsio_recv_burst(struct mr_vdev *vdev, queue_id_t qid, marsio_buff_t *mbufs[], int nr_mbufs); int marsio_recv_burst(struct mr_vdev *vdev, queue_id_t qid, marsio_buff_t *mbufs[], int nr_mbufs);
int marsio_send_burst(struct mr_sendpath *sendpath, queue_id_t qid, marsio_buff_t *mbufs[], int nr_mbufs); int marsio_send_burst(struct mr_sendpath *sendpath, queue_id_t qid, marsio_buff_t *mbufs[], int nr_mbufs);
int marsio_send_burst_with_options(struct mr_sendpath * sendpath, queue_id_t sid, marsio_buff_t * mbufs[], int nr_mbufs, uint16_t options);
// new add, only for gtest // new add, only for gtest
void marsio_set_recv_mbuff(struct mr_instance *instance, marsio_buff_t *mbuff); void marsio_set_recv_mbuff(struct mr_instance *instance, marsio_buff_t *mbuff);