perf: gmock marsio
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
# gmock_marsio
|
||||
###############################################################################
|
||||
|
||||
add_library(gmock_marsio marsio.cpp)
|
||||
target_include_directories(gmock_marsio PUBLIC ${CMAKE_CURRENT_LIST_DIR})
|
||||
add_library(gmock_marsio gmock_marsio.cpp)
|
||||
target_include_directories(gmock_marsio PUBLIC /opt/mrzcpd/include)
|
||||
|
||||
###############################################################################
|
||||
# temp_platform
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "marsio.h"
|
||||
|
||||
struct mr_instance
|
||||
@@ -18,6 +18,14 @@ extern "C"
|
||||
#include "health_check.h"
|
||||
#include "global_metrics.h"
|
||||
|
||||
// new add, only for gtest
|
||||
extern void marsio_set_recv_mbuff(struct mr_instance *instance, marsio_buff_t *mbuff);
|
||||
extern void marsio_set_send_mbuff(struct mr_instance *instance, marsio_buff_t *mbuff);
|
||||
extern marsio_buff_t *marsio_get_recv_mbuff(struct mr_instance *instance);
|
||||
extern marsio_buff_t *marsio_get_send_mbuff(struct mr_instance *instance);
|
||||
extern int marsio_mbuff_cmp(marsio_buff_t *mbuff1, marsio_buff_t *mbuff2);
|
||||
extern marsio_buff_t *marsio_mbuff_dup(marsio_buff_t *m);
|
||||
|
||||
#define set_metadata(meta, id, offset, is_ctrl, is_decrypt) \
|
||||
{ \
|
||||
memset(&meta, 0, sizeof(meta)); \
|
||||
|
||||
114
test/marsio.h
114
test/marsio.h
@@ -1,114 +0,0 @@
|
||||
#ifndef _MARSIO_H
|
||||
#define _MARSIO_H
|
||||
|
||||
#ifdef __cpluscplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifndef MARSIO_SOCKET_ID_ANY
|
||||
#define MARSIO_SOCKET_ID_ANY -1
|
||||
#endif
|
||||
|
||||
#ifndef MARSIO_LCORE_ID_ANY
|
||||
#define MARSIO_LCORE_ID_ANY -1
|
||||
#endif
|
||||
|
||||
#define MR_SID_LIST_MAXLEN 8
|
||||
|
||||
typedef uint16_t sid_t;
|
||||
typedef uint32_t queue_id_t;
|
||||
typedef void marsio_buff_t;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MARSIO_OPT_THREAD_NUM,
|
||||
MARSIO_OPT_THREAD_MASK,
|
||||
MARSIO_OPT_THREAD_AFFINITY_MODE,
|
||||
MARSIO_OPT_EXIT_WHEN_ERR,
|
||||
MARSIO_OPT_THREAD_MASK_IN_CPUSET,
|
||||
} marsio_opt_type_t;
|
||||
|
||||
enum mr_buff_metadata_type
|
||||
{
|
||||
MR_BUFF_REHASH_INDEX = 0,
|
||||
MR_BUFF_METADATA_VLAN_TCI = 1,
|
||||
MR_BUFF_ROUTE_CTX = 2,
|
||||
MR_BUFF_SESSION_ID = 3,
|
||||
MR_BUFF_DIR = 4,
|
||||
MR_BUFF_PAYLOAD_OFFSET = 5,
|
||||
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();
|
||||
int marsio_destory(struct mr_instance *instance);
|
||||
|
||||
struct mr_vdev *marsio_open_device(struct mr_instance *instance, const char *devsym, unsigned int nr_rxstream, unsigned int nr_txstream);
|
||||
void marsio_close_device(struct mr_vdev *vdev);
|
||||
|
||||
void marsio_get_device_ether_addr(struct mr_vdev *vdev, void *str_ether_addr, uint8_t size);
|
||||
|
||||
struct mr_sendpath *marsio_sendpath_create_by_vdev(struct mr_vdev *dest_device);
|
||||
void marsio_sendpath_destory(struct mr_sendpath *sendpath);
|
||||
|
||||
int marsio_init(struct mr_instance *instance, const char *appsym);
|
||||
int marsio_option_set(struct mr_instance *instance, marsio_opt_type_t opt_type, void *opt, size_t sz_opt);
|
||||
int marsio_thread_init(struct mr_instance *instance);
|
||||
int marsio_poll_wait(struct mr_instance *instance, struct mr_vdev *vdevs[], unsigned int nr_vdevs, unsigned int tid, int timeout);
|
||||
|
||||
int marsio_buff_set_metadata(marsio_buff_t *m, enum mr_buff_metadata_type type, void *data, unsigned int sz_data);
|
||||
int marsio_buff_get_metadata(marsio_buff_t *m, enum mr_buff_metadata_type type, void *data, unsigned int sz_data);
|
||||
|
||||
int marsio_buff_set_sid_list(marsio_buff_t *m, sid_t *slist, uint8_t sz_slist);
|
||||
int marsio_buff_get_sid_list(marsio_buff_t *m, sid_t *out_slist, uint8_t sz_out_slist);
|
||||
|
||||
int marsio_buff_malloc_global(struct mr_instance *instance, marsio_buff_t *marsio_buff[], unsigned int nr_mbufs, int socket_id, int thread_id);
|
||||
void marsio_buff_free(struct mr_instance *instance, marsio_buff_t *marsio_buff[], unsigned int nr_mbufs, int socket_id, int thread_id);
|
||||
|
||||
char *marsio_buff_mtod(marsio_buff_t *m);
|
||||
uint32_t marsio_buff_datalen(marsio_buff_t *m);
|
||||
|
||||
char *marsio_buff_adj(marsio_buff_t *m, uint16_t len);
|
||||
char *marsio_buff_append(marsio_buff_t *m, uint16_t len);
|
||||
char *marsio_buff_prepend(marsio_buff_t *m, uint16_t len);
|
||||
|
||||
void marsio_buff_ctrlzone_reset(marsio_buff_t *m);
|
||||
|
||||
int marsio_buff_is_ctrlbuf(marsio_buff_t *m);
|
||||
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_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
|
||||
void marsio_set_recv_mbuff(struct mr_instance *instance, marsio_buff_t *mbuff);
|
||||
void marsio_set_send_mbuff(struct mr_instance *instance, marsio_buff_t *mbuff);
|
||||
marsio_buff_t *marsio_get_recv_mbuff(struct mr_instance *instance);
|
||||
marsio_buff_t *marsio_get_send_mbuff(struct mr_instance *instance);
|
||||
|
||||
int marsio_mbuff_cmp(marsio_buff_t *mbuff1, marsio_buff_t *mbuff2);
|
||||
marsio_buff_t *marsio_mbuff_dup(marsio_buff_t *m);
|
||||
|
||||
#ifdef __cpluscplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user