#include #include "tsg_entry.h" const char *gtest_addrlist="127.0.0.1.37690>127.0.0.1.443"; struct gtest_ctrl_pkt { char buf[1024]; int len; }; void dictator_free(int thread_seq, void * pbuf) { free(pbuf); pbuf=NULL; } void *dictator_malloc(int thread_seq,size_t size) { return calloc(1, size); } void *dictator_realloc(int thread_seq, void * pbuf, size_t size) { return realloc(pbuf, size); } const char *printaddr (const struct layer_addr *paddrinfo, int threadindex) { return gtest_addrlist; } int get_thread_count(void) { return 8; } int MESA_rst_tcp(struct streaminfo * stream, struct rst_tcp_para * paras, int para_len) { return 0; } int sapp_inject_pkt(struct streaminfo * stream, enum sapp_inject_opt sio, const void * payload, int payload_len, unsigned char snd_routedir) { return 0; } struct gtest_ctrl_pkt ctrl_pkt; int sapp_inject_ctrl_pkt(struct streaminfo * stream, enum sapp_inject_opt sio, const void * payload, int payload_len, unsigned char snd_routedir) { memset(&ctrl_pkt, 0, sizeof(ctrl_pkt)); memcpy(ctrl_pkt.buf, payload, payload_len); ctrl_pkt.len = payload_len; return 0; } int get_ctrl_pkt(char *buf, int len) { memcpy(buf, ctrl_pkt.buf, MIN(len, ctrl_pkt.len)); return MIN(len, ctrl_pkt.len); } unsigned char MESA_dir_reverse(unsigned char raw_route_dir) { return 0; } extern "C" int MESA_get_dev_ipv4(const char * device, int * ip_add) { return 0; } extern "C" int sendpacket_do_checksum(unsigned char *buf, int protocol, int len) { return 0; } char *layer_addr_ntop_r(const struct streaminfo * pstream, char * out_buf, int out_buf_len) { return NULL; } const char *layer_addr_prefix_ntop(const struct streaminfo * pstream) { return NULL; } int stream_addr_list_ntop(const struct streaminfo * pstream, char * dst, int size) { return 0; } int MESA_dir_link_to_human(int link_route_dir) { return 0; } int MESA_set_stream_opt(const struct streaminfo * pstream, enum MESA_stream_opt opt, void * opt_val, int opt_val_len) { return 0; } int MESA_get_stream_opt(const struct streaminfo * pstream, enum MESA_stream_opt opt, void * opt_val, int * opt_val_len) { if (*opt_val_len == 2) { *(u_short *)opt_val = 2; } if (*opt_val_len == 8) { *(long long *)opt_val = 5; } return 0; } const void *get_rawpkt_from_streaminfo(const struct streaminfo *pstream) { return (void*)1; } int get_opt_from_rawpkt(const void *rawpkt, int type, void *out_value) { if (type > RAW_PKT_GET_SID_LIST) { return -1; } return 0; } int sapp_get_platform_opt(enum sapp_platform_opt opt, void * opt_val, int * opt_val_len) { return 0; } int get_rawpkt_opt_from_streaminfo(const struct streaminfo * pstream, int type, void * out_value) { return 0; } #define MAX_BRIDGE_NUM 32 void *g_bridge_async_data[MAX_BRIDGE_NUM]={0}; stream_bridge_free_cb_t *g_bridge_async_free[MAX_BRIDGE_NUM]={0}; stream_bridge_sync_cb_t *g_bridge_sync_cb[MAX_BRIDGE_NUM]={0}; int stream_bridge_register_data_free_cb(int bridge_id, stream_bridge_free_cb_t * free_cb_fun) { g_bridge_async_free[bridge_id]=free_cb_fun; return 0; } int stream_bridge_register_data_sync_cb(int bridge_id, stream_bridge_sync_cb_t * sync_cb_fun) { g_bridge_sync_cb[bridge_id]=*(stream_bridge_sync_cb_t *)sync_cb_fun; return 0; } int stream_bridge_sync_data_put(const struct streaminfo *stream, int bridge_id, void *data) { if(g_bridge_sync_cb[bridge_id]) { g_bridge_sync_cb[bridge_id](stream, bridge_id, data); } return 0; } void *stream_bridge_async_data_get(const struct streaminfo *stream, int bridge_id) { return g_bridge_async_data[bridge_id]; } int stream_bridge_async_data_put(const struct streaminfo * stream, int bridge_id, void * data) { g_bridge_async_data[bridge_id]=data; return 0; } int stream_bridge_build(const char * bridge_name, const char * rw_mode) { static int bridge_id=0; assert(bridge_id