rename packet_io_loop to stellar_event_base_loop

This commit is contained in:
yangwei
2022-07-20 20:20:31 +08:00
parent da47b80442
commit 6f558132a1
23 changed files with 160 additions and 118 deletions

View File

@@ -3,16 +3,16 @@
#include "plugin_manager.h"
#include "http.h"
struct packet_io_loop_arg
struct stellar_event_base_loop_arg
{
struct packet_io_device *dev;
int thread_id;
};
void packet_io_loop(struct packet_io_loop_arg *arg)
void stellar_event_base_loop(struct stellar_event_base_loop_arg *arg)
{
struct packet *rx_pkt;
struct session_event *event;
struct stellar_packet *rx_pkt;
struct stellar_event *event;
while(1)
{
int fetch_num = packet_io_rx(arg->dev, arg->thread_id, &rx_pkt, 1);
@@ -50,7 +50,7 @@ int main(int argc, char ** argv)
{
//config_manager_init
session_manager_session_event_register(http_decoder, SESSION_TYPE_HTTP);
plugin_session_event_register("HTTP", http_decoder, nullptr);
//packet_io_init
//create_worker_thread

View File

@@ -26,12 +26,12 @@ void packet_io_close_device(struct packet_io_device *dev)
return;
}
int packet_io_rx(struct packet_io_device *dev, uint32_t rx_queue_id, struct packet *p[], int nr_p)
int packet_io_rx(struct packet_io_device *dev, uint32_t rx_queue_id, struct stellar_packet *p[], int nr_p)
{
return 0;
}
int packet_io_tx(struct packet_io_device *dev, uint32_t rx_queue_id, struct packet *p[], int nr_p)
int packet_io_tx(struct packet_io_device *dev, uint32_t rx_queue_id, struct stellar_packet *p[], int nr_p)
{
return 0;
}

View File

@@ -19,5 +19,5 @@ void packet_io_destory(struct packet_io_instance *instance);
struct packet_io_device *packet_io_open_device(struct packet_io_instance *instance, const char *dev_sym, uint32_t nr_rxqueue, uint32_t nr_txqueue);
void packet_io_close_device(struct packet_io_device *dev);
int packet_io_rx(struct packet_io_device *dev, uint32_t rx_queue_id, struct packet *p[], int nr_p);
int packet_io_tx(struct packet_io_device *dev, uint32_t rx_queue_id, struct packet *p[], int nr_p);
int packet_io_rx(struct packet_io_device *dev, uint32_t rx_queue_id, struct stellar_packet *p[], int nr_p);
int packet_io_tx(struct packet_io_device *dev, uint32_t rx_queue_id, struct stellar_packet *p[], int nr_p);

View File

@@ -1,6 +1,6 @@
#include <gtest/gtest.h>
#include "packet_io.h"
#include "../packet_io.h"
TEST(PACKET_IO_Test, packet_io_create) {
EXPECT_EQ(packet_io_create(PACKET_IO_PCAP, "TEST"), nullptr);

View File

@@ -1,4 +1,4 @@
include_directories(${CMAKE_SOURCE_DIR}/session_manager/)
add_library(plugin_manager
plugin_manager.cpp
)
)
target_include_directories(plugin_manager PUBLIC ${CMAKE_SOURCE_DIR})

View File

@@ -1,13 +1,16 @@
#include "plugin.h"
#include "deps/uthash/uthash.h"
#include "sdk/include/session.h"
#include "session_manager.h"
#include "utils.h"
#if 0
struct session_event_callback
{
const char *session_name;
fn_session_event_callback callback;
TAILQ_ENTRY(session_event_callback) session_event_cb_tq_entries;
TAILQ_ENTRY(session_event_callback) entries;
UT_hash_handle hh;
};
@@ -26,9 +29,18 @@ struct plugin_manager
};
struct plugin_manager g_plug_mgr;
#endif
void plugin_manager_dispatch(struct session_event *event)
int plugin_session_event_register(const char *session_name,
fn_session_event_callback call_back,
const struct timeval *timeout)
{
return 0;
}
void plugin_manager_dispatch(struct stellar_event *event)
{
#if 0
struct session *s = container_of(event, struct session, cur_ev);
struct session_event_callback_map *t_map;
struct session_event_callback *session_ev_cb;
@@ -55,6 +67,6 @@ void plugin_manager_dispatch(struct session_event *event)
default:
break;
}
#endif
return;
}

View File

@@ -1,6 +1,25 @@
#pragma once
#include "plugin.h"
#include <sys/queue.h>
void plugin_manager_dispatch(struct session_event *event);
#include "sdk/include/session.h"
#include "sdk/include/plugin.h"
struct stellar_plugin_ctx
{
void *call_back_arg;
const struct timeval timeout;
fn_session_event_callback call_back;
TAILQ_ENTRY(stellar_plugin_ctx) tqe;
};
TAILQ_HEAD(stellar_plugin_ctx_list, stellar_plugin_ctx);
struct stellar_plugin_data
{
stellar_plugin_ctx_list plugin_ctx_list;
};
void plugin_manager_dispatch(struct stellar_event *ev);

View File

@@ -2,4 +2,5 @@
add_library(http
http.cpp
)
)
target_include_directories(http PUBLIC ${CMAKE_SOURCE_DIR})

View File

@@ -1,16 +1,16 @@
#include "http.h"
#include "session_manager.h"
int http_decoder(const struct session *s, int what, struct packet *p, const char *payload, uint32_t len, void **pme)
int http_decoder(const struct stellar_session *s, int what, struct stellar_packet *p, const char *payload, uint32_t len, void **pme)
{
void *info;
struct session *new_session=session_manager_session_derive(s, SESSION_TYPE_HTTP);
struct stellar_session_event_extras *info;
struct stellar_session *new_session=session_manager_session_derive(s, "HTTP");
session_manager_trigger_event(new_session, SESSION_EVENT_OPENING, info);
session_manager_trigger_event(new_session, SESSION_EVENT_META, info);
return 0;
}
int http_peek(const struct session *s, const char *payload, uint32_t len)
int http_peek(const struct stellar_session *s, const char *payload, uint32_t len)
{
return 0;
}

View File

@@ -1,4 +1,4 @@
add_library(session_manager
session_manager.cpp
)
)
target_include_directories(session_manager PUBLIC ${CMAKE_SOURCE_DIR})

View File

@@ -2,42 +2,29 @@
struct session_manager
{
struct session **tcp_table, **udp_table;
struct stellar_session **tcp_table, **udp_table;
};
void session_manager_session_event_register(fn_session_event_callback decoder, session_type type)
void session_manager_trigger_event(struct stellar_session *s,
stellar_session_event_type type,
struct stellar_session_event_extras *info)
{
return;
}
struct session *session_manager_custom_session_derive(const struct session *cur_session, struct custom_session_event *event)
struct stellar_session *session_manager_session_derive(const struct stellar_session *this_session,
const char *new_session_name)
{
return nullptr;
}
void session_manager_trigger_event(struct session *s, session_event_type event, void *event_info)
{
return;
}
struct session_event *session_manager_commit(struct packet *p)
struct stellar_event *session_manager_commit(struct stellar_packet *p)
{
return nullptr;
};
struct custom_session_event *session_manager_custom_session_event_register(const char *event_name, int available_event)
{
return nullptr;
}
struct session *session_manager_session_derive(const struct session *cur_session, session_type type)
{
return nullptr;
}
struct session_event *session_manager_fetch_event()
struct stellar_event *session_manager_fetch_event()
{
return nullptr;
}

View File

@@ -1,47 +1,24 @@
#pragma once
#include "session.h"
#include "uthash/uthash.h"
#include "sdk/include/session.h"
#include <sys/queue.h> /* TAILQ(3) */
struct stellar_plugin_data;
struct session_data
struct stellar_session_event_data
{
/* data */
struct stellar_session *s;
stellar_session_event_type type;
long last_active;
struct stellar_plugin_data *plugin_data;
};
enum session_state
struct stellar_event *session_manager_commit(struct stellar_packet *pkt);
struct stellar_event *session_manager_fetch_event();
struct stellar_session
{
SESSION_STATE_OPENING,
SESSION_STATE_ACTIVE,
SESSION_STATE_CLOSING,
SESSION_STATE_CLOSED
stellar_session_type type;
const char *name;
void *addr;
void *data;
};
struct session_event
{
enum session_state state;
void *cb_pme;
fn_session_event_callback callback;
TAILQ_ENTRY(session_event) session_event_tq_entries;
};
TAILQ_HEAD(session_event_list, session_event);
struct session
{
const char *name;
enum session_type type;
enum session_state state;
struct session_data data;
struct session_event cur_ev;
struct session_event_list ev_list;
TAILQ_ENTRY(session) session_tq_entries;
UT_hash_handle hh;
};
void session_manager_session_event_register(fn_session_event_callback session_ev_cb, session_type type);
struct session *session_manager_session_derive(const struct session *cur_session, session_type type);