Commit Graph

96 Commits

Author SHA1 Message Date
luwenpeng
1aece166cd refactor: rename struct raw_layer to struct layer_private 2024-08-21 18:18:12 +08:00
luwenpeng
b0b699e47b refactor: rename session_utils.cpp to session.cpp 2024-08-21 18:18:12 +08:00
luwenpeng
99edee1c4f rename unused session inner exdata 2024-08-21 18:18:12 +08:00
luwenpeng
f061f9abc1 feature: support session manager scan 2024-08-20 18:57:35 +08:00
luwenpeng
d1df1bb18b session manager stat metric rename 2024-08-16 18:46:55 +08:00
luwenpeng
b77c8e6ba1 packet bypass metric rename 2024-08-16 18:32:35 +08:00
luwenpeng
522c4bb6d7 TCP reassembly stat metric rename 2024-08-16 18:24:54 +08:00
luwenpeng
60a4666427 refactor: move packet_layer / packet_tunnel to packet.cpp 2024-08-16 16:58:06 +08:00
luwenpeng
a2d68bb853 refactor: rename packet_utils.cpp to packet.cpp 2024-08-16 16:31:25 +08:00
luwenpeng
c298fdf289 refactor: mv eth/gre0/gre1/gtp1/gtp2/ip4/ip6/l2tp/mpls/tcp/udp/vlan/vxlan utils.h to packet_helper.h 2024-08-16 16:12:12 +08:00
luwenpeng
d2de4bd328 refactor: move duplicated_packet_filter to packet dir 2024-08-16 11:43:45 +08:00
luwenpeng
da891dffa7 refactor: move evicted_session_filter to session dir 2024-08-16 11:18:16 +08:00
luwenpeng
f4d437d58b refactor: rename id_generator to snowflake 2024-08-16 11:02:19 +08:00
luwenpeng
6fbce43afc refactor: move macro to utils.h 2024-08-16 10:43:00 +08:00
luwenpeng
e8299dd77c enhance: rename session manager stat iterm name 2024-08-14 17:25:46 +08:00
luwenpeng
48202b4d0a config: adjust the number of maz entries per bucket for IP reassembly 2024-07-30 19:17:29 +08:00
luwenpeng
1f09f43f52 feature: session manager support lookup session by session ID 2024-07-29 10:44:57 +08:00
luwenpeng
62b9c0c99c feature: add 'quiet' option to avoid automatic update of LRU list by find session 2024-07-25 18:50:15 +08:00
luwenpeng
f43da9002b optimizate: rename IP type to address family 2024-07-25 18:29:57 +08:00
luwenpeng
b50f0c2c70 optimizate: pass the current timeout to the ID generator as a parameter, instead of getting the time from the ID generator itself 2024-07-16 17:16:52 +08:00
luwenpeng
da9fb7cd11 optimizate inject packt test case 2024-06-27 16:00:12 +08:00
luwenpeng
076b3c7b0b refactor: session module (split to define/utils/pool/table/timer/transition/manager) 2024-06-25 10:32:51 +08:00
luwenpeng
71422ebb36 refactor: packet module (split to parse/build/layer/tunnel/utils) 2024-06-24 17:07:05 +08:00
luwenpeng
de4c15f43c Refactored packet API to support struct layer (using union to contain different types of encapsulation headers) 2024-06-14 19:24:27 +08:00
luwenpeng
1f78881cbb rename struct packet_layer to struct raw_layer 2024-06-14 10:58:40 +08:00
luwenpeng
01958b56c5 rename layer_type to layer_proto 2024-06-12 18:21:45 +08:00
luwenpeng
3701fc7361 Add session_set_discard 2024-05-20 17:02:16 +08:00
luwenpeng
0e33a1b647 Resolve merge conflicts 2024-05-20 11:26:06 +08:00
luwenpeng
31a4267e23 support inject mutil packet base current packet 2024-05-17 19:10:28 +08:00
luwenpeng
c22e4e5955 recv SYN after FIN or RST is considered to be TCP port reuse 2024-05-17 17:38:08 +08:00
luwenpeng
32ae4618ef Add support for TCP port reuse (same tuple6 but different ISN) in session manager: evict old session and create new session 2024-05-16 19:21:12 +08:00
luwenpeng
1559f0a13e bugfix: session cannot get current flow direction on duplicate package 2024-05-16 17:07:53 +08:00
luwenpeng
4c50a6dca7 Add injected packets to duplicate packet filter 2024-05-16 10:32:42 +08:00
luwenpeng
fdc65067b2 stellar support monotonic time and real time 2024-05-16 10:13:43 +08:00
luwenpeng
44c2cf86e4 session_get_tcp_segment() and session_free_tcp_segment() support asynchronous calls 2024-05-15 17:47:57 +08:00
luwenpeng
7b20747c8f Update session.h: support get tuple6 by session 2024-05-15 16:29:33 +08:00
luwenpeng
b33dafff53 Add packet injector test frame 2024-05-15 14:48:15 +08:00
luwenpeng
cda77c6f6f Add the packet_injector tool to test the packet injection effect 2024-05-11 18:58:36 +08:00
luwenpeng
13001003e2 Refactor enum session_stat with improved naming conventions 2024-05-09 16:32:45 +08:00
luwenpeng
cc380d9271 rename session_direction to flow_direction 2024-05-09 14:57:12 +08:00
luwenpeng
37d12ebcfc inject TCP RST test pass 2024-05-08 18:24:26 +08:00
luwenpeng
61ee619689 TCP reassembly add stat of TCP retransmit and TCP overlap 2024-05-06 17:33:02 +08:00
luwenpeng
309736f9f1 session manager support TCP fast open 2024-05-06 12:06:20 +08:00
luwenpeng
c59f178769 Update stat of session manager 2024-04-30 17:03:36 +08:00
luwenpeng
dc37306594 update session table add/del API 2024-04-30 15:29:31 +08:00
luwenpeng
17ca476c24 tcp session record last packet tcp payload length used to calculate seq of injected RST packets 2024-04-25 15:39:02 +08:00
luwenpeng
476c5bac56 session table can search session by tuple6 or tuple4 or id 2024-04-24 11:39:15 +08:00
luwenpeng
74f0504d3d Update Stellar export header and add stellar_get_current_thread_index() function 2024-04-23 14:38:58 +08:00
luwenpeng
5508454a1b Optimize packet I/O and timeouts
- Introduce per-thread I/O statistics for packet I/O to reduce performance overhead.
- Implement packet_io_yield() for better thread management during I/O operations.
- Refactor time wheel management:
  - Replace timeouts-based cron tasks with (now_ts - last_ts > timeout) for scheduled tasks.
  - Update the time wheel every 5 ms for improved time management.
2024-04-18 14:37:03 +08:00
luwenpeng
d57c81697f bugfix: call duplicated packet filter too many times 2024-04-17 17:53:42 +08:00