feature: add session monitor, support 'show session id/all/info' command
This commit is contained in:
@@ -108,224 +108,333 @@ TEST(SESS_MGR_SCAN, OPTS)
|
||||
sess = session_manager_rte_new_session(sess_mgr_rte, &pkt, 4);
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
struct session_scan_opts scan = {};
|
||||
// scan.flags = SESSION_SCAN_TYPE | SESSION_SCAN_STATE | SESSION_SCAN_SIP | SESSION_SCAN_DIP | SESSION_SCAN_SPORT | SESSION_SCAN_DPORT | SESSION_SCAN_CREATE_TIME | SESSION_SCAN_LASPKT_TIME;
|
||||
scan.cursor = 0;
|
||||
scan.count = 1460;
|
||||
struct session_filter filter = {};
|
||||
|
||||
scan.laspkt_time_ms[0] = 0;
|
||||
scan.laspkt_time_ms[1] = UINT64_MAX;
|
||||
/**************************************************************************
|
||||
* scan session type
|
||||
**************************************************************************/
|
||||
|
||||
// SESSION_SCAN_TYPE
|
||||
scan.flags = SESSION_SCAN_TYPE;
|
||||
// TCP
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.type = SESSION_TYPE_TCP;
|
||||
|
||||
scan.type = SESSION_TYPE_TCP;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 3);
|
||||
mached_session_print("SESSION_SCAN_TYPE: (TCP)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan session type: TCP", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.type = SESSION_TYPE_UDP;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// UDP
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.type = SESSION_TYPE_UDP;
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 1);
|
||||
mached_session_print("SESSION_SCAN_TYPE: (UDP)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan session type: UDP", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
// SESSION_SCAN_STATE
|
||||
scan.flags = SESSION_SCAN_STATE;
|
||||
/**************************************************************************
|
||||
* scan session state
|
||||
**************************************************************************/
|
||||
|
||||
scan.state = SESSION_STATE_OPENING;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// OPENING
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.state = SESSION_STATE_OPENING;
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 4);
|
||||
mached_session_print("SESSION_SCAN_STATE: (OPENING)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan session state: OPENING", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.state = SESSION_STATE_ACTIVE;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// ACTIVE
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.state = SESSION_STATE_ACTIVE;
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 0);
|
||||
mached_session_print("SESSION_SCAN_STATE: (ACTIVE)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan session state: ACTIVE", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.state = SESSION_STATE_CLOSING;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// CLOSING
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.state = SESSION_STATE_CLOSING;
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 0);
|
||||
mached_session_print("SESSION_SCAN_STATE: (CLOSING)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan session state: CLOSING", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.state = SESSION_STATE_DISCARD;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// DISCARD
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.state = SESSION_STATE_DISCARD;
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 0);
|
||||
mached_session_print("SESSION_SCAN_STATE: (DISCARD)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan session state: DISCARD", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.state = SESSION_STATE_CLOSED;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// CLOSED
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.state = SESSION_STATE_CLOSED;
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 0);
|
||||
mached_session_print("SESSION_SCAN_STATE: (CLOSED)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan session state: CLOSED", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
// SESSION_SCAN_SIP
|
||||
scan.flags = SESSION_SCAN_SIP;
|
||||
/**************************************************************************
|
||||
* scan source address
|
||||
**************************************************************************/
|
||||
|
||||
scan.addr_family = AF_INET;
|
||||
scan.src_addr[0].v4 = v4_src_addr1;
|
||||
scan.src_addr[1].v4 = v4_src_addr1;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// IPv4
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.src_family = AF_INET;
|
||||
filter.src_addr_range[0].v4 = v4_src_addr1;
|
||||
filter.src_addr_range[1].v4 = v4_src_addr1;
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 1);
|
||||
mached_session_print("SESSION_SCAN_SIP: (IPv4)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan source address: IPv4", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.addr_family = AF_INET;
|
||||
scan.src_addr[0].v4 = v4_src_subnet_beg;
|
||||
scan.src_addr[1].v4 = v4_src_subnet_end;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// IPv4 subnet
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.src_family = AF_INET;
|
||||
filter.src_addr_range[0].v4 = v4_src_subnet_beg;
|
||||
filter.src_addr_range[1].v4 = v4_src_subnet_end;
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 3);
|
||||
mached_session_print("SESSION_SCAN_SIP: (IPv4 SUBNET)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan source address: IPv4 subnet", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.addr_family = AF_INET;
|
||||
scan.src_addr[0].v4 = v4_min_addr;
|
||||
scan.src_addr[1].v4 = v4_max_addr;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// IPv4 min max
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.src_family = AF_INET;
|
||||
filter.src_addr_range[0].v4 = v4_min_addr;
|
||||
filter.src_addr_range[1].v4 = v4_max_addr;
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 3);
|
||||
mached_session_print("SESSION_SCAN_SIP: (IPv4 MIN MAX)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan source address: IPv4 min max", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.addr_family = AF_INET6;
|
||||
memcpy(&scan.src_addr[0].v6, &v6_src_addr, sizeof(v6_src_addr));
|
||||
memcpy(&scan.src_addr[1].v6, &v6_src_addr, sizeof(v6_src_addr));
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// IPv6
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.src_family = AF_INET6;
|
||||
memcpy(&filter.src_addr_range[0].v6, &v6_src_addr, sizeof(v6_src_addr));
|
||||
memcpy(&filter.src_addr_range[1].v6, &v6_src_addr, sizeof(v6_src_addr));
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 1);
|
||||
mached_session_print("SESSION_SCAN_SIP: (IPv6)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan source address: IPv6", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.addr_family = AF_INET6;
|
||||
memcpy(&scan.src_addr[0].v6, &v6_src_subnet_beg, sizeof(v6_src_subnet_beg));
|
||||
memcpy(&scan.src_addr[1].v6, &v6_src_subnet_end, sizeof(v6_src_subnet_end));
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// IPv6 subnet
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.src_family = AF_INET6;
|
||||
memcpy(&filter.src_addr_range[0].v6, &v6_src_subnet_beg, sizeof(v6_src_subnet_beg));
|
||||
memcpy(&filter.src_addr_range[1].v6, &v6_src_subnet_end, sizeof(v6_src_subnet_end));
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 1);
|
||||
mached_session_print("SESSION_SCAN_SIP: (IPv6 SUBNET)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan source address: IPv6 subnet", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.addr_family = AF_INET6;
|
||||
memcpy(&scan.src_addr[0].v6, &v6_min_addr, sizeof(v6_min_addr));
|
||||
memcpy(&scan.src_addr[1].v6, &v6_max_addr, sizeof(v6_max_addr));
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// IPv6 min max
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.src_family = AF_INET6;
|
||||
memcpy(&filter.src_addr_range[0].v6, &v6_min_addr, sizeof(v6_min_addr));
|
||||
memcpy(&filter.src_addr_range[1].v6, &v6_max_addr, sizeof(v6_max_addr));
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 1);
|
||||
mached_session_print("SESSION_SCAN_SIP: (IPv6 MIN MAX)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan source address: IPv6 min max", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
// SESSION_SCAN_DIP
|
||||
scan.flags = SESSION_SCAN_DIP;
|
||||
/**************************************************************************
|
||||
* scan destination address
|
||||
**************************************************************************/
|
||||
|
||||
scan.addr_family = AF_INET;
|
||||
scan.dst_addr[0].v4 = v4_dst_addr;
|
||||
scan.dst_addr[1].v4 = v4_dst_addr;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// IPv4
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.dst_family = AF_INET;
|
||||
filter.dst_addr_range[0].v4 = v4_dst_addr;
|
||||
filter.dst_addr_range[1].v4 = v4_dst_addr;
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 3);
|
||||
mached_session_print("SESSION_SCAN_DIP: (IPv4)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan destination address: IPv4", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.addr_family = AF_INET;
|
||||
scan.dst_addr[0].v4 = v4_dst_subnet_beg;
|
||||
scan.dst_addr[1].v4 = v4_dst_subnet_end;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// IPv4 subnet
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.dst_family = AF_INET;
|
||||
filter.dst_addr_range[0].v4 = v4_dst_subnet_beg;
|
||||
filter.dst_addr_range[1].v4 = v4_dst_subnet_end;
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 3);
|
||||
mached_session_print("SESSION_SCAN_DIP: (IPv4 SUBNET)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan destination address: IPv4 subnet", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.addr_family = AF_INET;
|
||||
scan.dst_addr[0].v4 = v4_min_addr;
|
||||
scan.dst_addr[1].v4 = v4_max_addr;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// IPv4 min max
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.dst_family = AF_INET;
|
||||
filter.dst_addr_range[0].v4 = v4_min_addr;
|
||||
filter.dst_addr_range[1].v4 = v4_max_addr;
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 3);
|
||||
mached_session_print("SESSION_SCAN_DIP: (IPv4 MIN MAX)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan destination address: IPv4 min max", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.addr_family = AF_INET6;
|
||||
memcpy(&scan.dst_addr[0].v6, &v6_dst_addr, sizeof(v6_dst_addr));
|
||||
memcpy(&scan.dst_addr[1].v6, &v6_dst_addr, sizeof(v6_dst_addr));
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// IPv6
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.dst_family = AF_INET6;
|
||||
memcpy(&filter.dst_addr_range[0].v6, &v6_dst_addr, sizeof(v6_dst_addr));
|
||||
memcpy(&filter.dst_addr_range[1].v6, &v6_dst_addr, sizeof(v6_dst_addr));
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 1);
|
||||
mached_session_print("SESSION_SCAN_DIP: (IPv6)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan destination address: IPv6", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.addr_family = AF_INET6;
|
||||
memcpy(&scan.dst_addr[0].v6, &v6_dst_subnet_beg, sizeof(v6_dst_subnet_beg));
|
||||
memcpy(&scan.dst_addr[1].v6, &v6_dst_subnet_end, sizeof(v6_dst_subnet_end));
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// IPv6 subnet
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.dst_family = AF_INET6;
|
||||
memcpy(&filter.dst_addr_range[0].v6, &v6_dst_subnet_beg, sizeof(v6_dst_subnet_beg));
|
||||
memcpy(&filter.dst_addr_range[1].v6, &v6_dst_subnet_end, sizeof(v6_dst_subnet_end));
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 1);
|
||||
mached_session_print("SESSION_SCAN_DIP: (IPv6 SUBNET)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan destination address: IPv6 subnet", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.addr_family = AF_INET6;
|
||||
memcpy(&scan.dst_addr[0].v6, &v6_min_addr, sizeof(v6_min_addr));
|
||||
memcpy(&scan.dst_addr[1].v6, &v6_max_addr, sizeof(v6_max_addr));
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// IPv6 min max
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.dst_family = AF_INET6;
|
||||
memcpy(&filter.dst_addr_range[0].v6, &v6_min_addr, sizeof(v6_min_addr));
|
||||
memcpy(&filter.dst_addr_range[1].v6, &v6_max_addr, sizeof(v6_max_addr));
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 1);
|
||||
mached_session_print("SESSION_SCAN_DIP: (IPv6 MIN MAX)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan destination address: IPv6 min max", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
// SESSION_SCAN_SPORT
|
||||
scan.flags = SESSION_SCAN_SPORT;
|
||||
/**************************************************************************
|
||||
* scan source port
|
||||
**************************************************************************/
|
||||
|
||||
scan.src_port = htons(60111);
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// hit
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.src_port = htons(60111);
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 3);
|
||||
mached_session_print("SESSION_SCAN_SPORT: (HIT)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan source port: hit", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.src_port = htons(60110);
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// miss
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.src_port = htons(60110);
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 0);
|
||||
mached_session_print("SESSION_SCAN_SPORT: (MISS)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan source port: miss", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
// SESSION_SCAN_DPORT
|
||||
scan.flags = SESSION_SCAN_DPORT;
|
||||
/**************************************************************************
|
||||
* scan destination port
|
||||
**************************************************************************/
|
||||
|
||||
scan.dst_port = htons(80);
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// hit
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.dst_port = htons(80);
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 3);
|
||||
mached_session_print("SESSION_SCAN_DPORT: (HIT)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan destination port: hit", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.dst_port = htons(81);
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// miss
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.dst_port = htons(81);
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 0);
|
||||
mached_session_print("SESSION_SCAN_DPORT: (MISS)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan destination port: miss", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
// SESSION_SCAN_CREATE_TIME
|
||||
scan.flags = SESSION_SCAN_CREATE_TIME;
|
||||
/**************************************************************************
|
||||
* scan session create time
|
||||
**************************************************************************/
|
||||
|
||||
scan.create_time_ms[0] = 0;
|
||||
scan.create_time_ms[1] = UINT64_MAX;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
// hit
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.sess_created_ts_in_ms = 1;
|
||||
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 4);
|
||||
mached_session_print("SESSION_SCAN_CREATE_TIME: (HIT)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan session create time: hit", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.create_time_ms[0] = 1;
|
||||
scan.create_time_ms[1] = 2;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 2);
|
||||
mached_session_print("SESSION_SCAN_CREATE_TIME: (HIT)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
// miss
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.sess_created_ts_in_ms = 5;
|
||||
|
||||
scan.create_time_ms[0] = 0;
|
||||
scan.create_time_ms[1] = 0;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 0);
|
||||
mached_session_print("SESSION_SCAN_CREATE_TIME: (MISS)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan session create time: miss", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.create_time_ms[0] = UINT64_MAX;
|
||||
scan.create_time_ms[1] = UINT64_MAX;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 0);
|
||||
mached_session_print("SESSION_SCAN_CREATE_TIME: (MISS)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
/**************************************************************************
|
||||
* scan last packet receive time
|
||||
**************************************************************************/
|
||||
|
||||
// SESSION_SCAN_LASPKT_TIME
|
||||
scan.flags = SESSION_SCAN_LASPKT_TIME;
|
||||
// hit
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.pkt_received_ts_in_ms = 1;
|
||||
|
||||
scan.laspkt_time_ms[0] = 0;
|
||||
scan.laspkt_time_ms[1] = UINT64_MAX;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 4);
|
||||
mached_session_print("SESSION_SCAN_LASPKT_TIME: (HIT)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan last packet receive time: hit", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.laspkt_time_ms[0] = 1;
|
||||
scan.laspkt_time_ms[1] = 2;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 2);
|
||||
mached_session_print("SESSION_SCAN_LASPKT_TIME: (HIT)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
// miss
|
||||
memset(&filter, 0, sizeof(filter));
|
||||
filter.cursor = 0;
|
||||
filter.count = 1460;
|
||||
filter.pkt_received_ts_in_ms = 5;
|
||||
|
||||
scan.laspkt_time_ms[0] = 0;
|
||||
scan.laspkt_time_ms[1] = 0;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &filter, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 0);
|
||||
mached_session_print("SESSION_SCAN_LASPKT_TIME: (MISS)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
scan.laspkt_time_ms[0] = UINT64_MAX;
|
||||
scan.laspkt_time_ms[1] = UINT64_MAX;
|
||||
mached_sess_num = session_manager_rte_scan_session(sess_mgr_rte, &scan, mached_sess_id, sizeof(mached_sess_id) / sizeof(mached_sess_id[0]));
|
||||
EXPECT_TRUE(mached_sess_num == 0);
|
||||
mached_session_print("SESSION_SCAN_LASPKT_TIME: (MISS)", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
mached_session_print("scan last packet receive time: miss", sess_mgr_rte, mached_sess_id, mached_sess_num);
|
||||
|
||||
session_manager_rte_free(sess_mgr_rte);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user