summaryrefslogtreecommitdiff
path: root/dependence/include/stellar/stellar.h
diff options
context:
space:
mode:
Diffstat (limited to 'dependence/include/stellar/stellar.h')
-rw-r--r--dependence/include/stellar/stellar.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/dependence/include/stellar/stellar.h b/dependence/include/stellar/stellar.h
new file mode 100644
index 0000000..e9322be
--- /dev/null
+++ b/dependence/include/stellar/stellar.h
@@ -0,0 +1,48 @@
+#pragma once
+
+struct session;
+struct stellar;
+
+int stellar_get_worker_thread_num(struct stellar *st);
+int stellar_get_current_thread_id(struct stellar *st);
+
+//return plugin_env
+typedef void *plugin_on_load_func(struct stellar *st);
+typedef void plugin_on_unload_func(void *plugin_env);
+
+//return per_session_ctx
+typedef void *session_ctx_new_func(struct session *sess, void *plugin_env);
+typedef void session_ctx_free_func(struct session *sess, void *session_ctx, void *plugin_env);
+
+//intrinsic topic, publish packet as message
+#define TOPIC_TCP "TCP"
+#define TOPIC_TCP_STREAM "TCP_STREAM"
+#define TOPIC_UDP "UDP"
+#define TOPIC_EGRESS "EGRESS"
+#define TOPIC_CONTROL_PACKET "CONTROL_PACKET"
+
+//return session plugin_id
+int stellar_session_plugin_register(struct stellar *st,
+ session_ctx_new_func session_ctx_new,
+ session_ctx_free_func session_ctx_free,
+ void *plugin_env);
+
+void stellar_session_plugin_dettach_current_session(struct session *sess);
+
+
+
+struct packet;
+typedef void plugin_on_packet_func(struct packet *pkt, unsigned char ip_protocol, void *plugin_env);
+
+//return packet plugin_id
+int stellar_packet_plugin_register(struct stellar *st, unsigned char ip_protocol, plugin_on_packet_func on_packet, void *plugin_env);
+
+
+//return polling work result, 0: no work, 1: work
+typedef int plugin_on_polling_func(void *plugin_env);
+
+//return polling plugin_id
+int stellar_polling_plugin_register(struct stellar *st, plugin_on_polling_func on_polling, void *plugin_env);
+
+
+void stellar_emit_datapath_telemetry(struct packet *pkt, const char * module, const char *str); \ No newline at end of file