No description
This repository has been archived on 2026-06-16. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • C 40.8%
  • C++ 38.4%
  • Shell 16.3%
  • CMake 4.5%
Find a file
2024-11-14 10:20:04 +08:00
ci 🐞 fix(travis.sh): remove devtoolset-7 2023-11-10 16:50:56 +08:00
cmake Bugfix: fix rpm conflict 2024-01-09 17:08:38 +08:00
conf 📃 docs(directory structure): define directory and add .gitkeep 2023-08-08 11:23:07 +08:00
deps 🧪 test(plugin_manager gtest): add session_mq_topic_is_active test case 2024-07-10 12:10:40 +08:00
docs/images feat(update readme and session.h): 2023-08-16 19:58:59 +08:00
examples 🔧 build(cmake): add UndefinedBehaviorSanitizer 2024-07-24 17:03:50 +08:00
include/stellar feat(session.h): add packet_get_linkid 2024-08-19 18:19:44 +08:00
src 🐞 fix(fix el9 compile warnig): cppcheck & include files 2024-11-14 09:56:10 +08:00
test 🧪 test(mq priority): disable priority, always append to low 2024-11-14 09:44:55 +08:00
vendor 🧪 test(remove http decoder): rm related source code 2024-05-28 04:40:31 +08:00
.gitignore Release stellar header file 2023-11-07 11:17:30 +08:00
.gitlab-ci.yml 🐎 ci(add aarch64 jobs): aarch64 + el9 2024-11-14 10:20:04 +08:00
autorevision.sh 🔧 build(import build dependen tools): 2023-08-09 10:28:13 +08:00
CMakeLists.txt 🐞 fix(fix el9 compile warnig): cppcheck & include files 2024-11-14 09:56:10 +08:00
README.md 🔧 build(cmake parameter): set build warning as error 2024-07-24 15:13:09 +08:00

Stellar-on-sapp: c adapter for stellar

Concepts

The stellar-on-sapp is a transition solution from Sapp to Stellar for fast DPI plugin development. The Stellar-on-sapp is built on the concepts of sessions and messages. A session is defined as a sequence of packets that share the same traffic attributes, such as TCP or UDP sessions.

  • Each session has a message queue, which facilitates the exchange of messages among plugins. The message delivery is in the session scope. In stellar-on-sapp, plugins are decoupled through the publish-subscribe mechanism.
  • EXdata (Extra Data) is attached to a session for plugin context management.

stellar-c-high-level-design

Components

The stellar-on-sapp consists of the following components:

  • Sapp adaptor converts a Sapp stream to a Stellar session, and calls Stellar plugins to process the session.
  • Firewall is a Sapp plugins that interact with TCP/UDP and L7 decoders. It inherits all TSG firewall functions and publish messages to Stellar plugins.
  • Stellar plugins are DPI plugins that process the session, such as AppSketch, Session Flagging, Session Recorder.
  • Common libraries are shared libraries that are used by Stellar plugins, such as utable, logger.
  • Test framework generates sessions and messages from different data source for testing Stellar plugins. Possible data sources include pcap file, Kafka message queue, and fuzzing data.

The Lifecycle of a Session

All session has three states for plugin view, which are Opening, Active, Closing.

stellar-session-life-cycle