mirror of
https://github.com/rtbrick/bngblaster.git
synced 2024-05-06 15:54:57 +00:00
Update sessions-pending cmd
Display session with session traffic not verified here as well.
This commit is contained in:
+8
-3
@@ -1042,10 +1042,15 @@ bbl_ctrl_sessions_pending(int fd, bbl_ctx_s *ctx, uint32_t session_id __attribut
|
||||
/* Iterate over all sessions */
|
||||
for(i = 0; i < ctx->sessions; i++) {
|
||||
session = ctx->session_list[i];
|
||||
if(session && session->session_state != BBL_ESTABLISHED) {
|
||||
json_session = json_pack("{si ss}",
|
||||
if(!session) continue;
|
||||
|
||||
if(session->session_state != BBL_ESTABLISHED ||
|
||||
session->session_traffic_flows != session->session_traffic_flows_verified) {
|
||||
json_session = json_pack("{si ss si si}",
|
||||
"session-id", session->session_id,
|
||||
"session-state", session_state_string(session->session_state));
|
||||
"session-state", session_state_string(session->session_state),
|
||||
"session-traffic-flows", session->session_traffic_flows,
|
||||
"session-traffic-flows-verified", session->session_traffic_flows_verified);
|
||||
json_array_append(json_sessions, json_session);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -351,6 +351,7 @@ bbl_rx_udp_ipv6(bbl_ethernet_header_t *eth, bbl_ipv6_t *ipv6, bbl_interface_s *i
|
||||
if(!session->access_ipv6_rx_first_seq) {
|
||||
session->access_ipv6_rx_first_seq = bbl->flow_seq;
|
||||
interface->ctx->stats.session_traffic_flows_verified++;
|
||||
session->session_traffic_flows_verified++;
|
||||
} else {
|
||||
if(session->access_ipv6_rx_last_seq +1 != bbl->flow_seq) {
|
||||
interface->stats.session_ipv6_loss++;
|
||||
@@ -377,6 +378,7 @@ bbl_rx_udp_ipv6(bbl_ethernet_header_t *eth, bbl_ipv6_t *ipv6, bbl_interface_s *i
|
||||
if(!session->access_ipv6pd_rx_first_seq) {
|
||||
session->access_ipv6pd_rx_first_seq = bbl->flow_seq;
|
||||
interface->ctx->stats.session_traffic_flows_verified++;
|
||||
session->session_traffic_flows_verified++;
|
||||
} else {
|
||||
if(session->access_ipv6pd_rx_last_seq +1 != bbl->flow_seq) {
|
||||
interface->stats.session_ipv6pd_loss++;
|
||||
@@ -619,6 +621,7 @@ bbl_rx_ipv4(bbl_ethernet_header_t *eth, bbl_ipv4_t *ipv4, bbl_interface_s *inter
|
||||
if(!session->access_ipv4_rx_first_seq) {
|
||||
session->access_ipv4_rx_first_seq = bbl->flow_seq;
|
||||
interface->ctx->stats.session_traffic_flows_verified++;
|
||||
session->session_traffic_flows_verified++;
|
||||
} else {
|
||||
if(session->access_ipv4_rx_last_seq +1 != bbl->flow_seq) {
|
||||
interface->stats.session_ipv4_loss++;
|
||||
@@ -1829,6 +1832,7 @@ bbl_rx_handler_network(bbl_ethernet_header_t *eth, bbl_interface_s *interface) {
|
||||
if(!session->network_ipv4_rx_first_seq) {
|
||||
session->network_ipv4_rx_first_seq = bbl->flow_seq;
|
||||
interface->ctx->stats.session_traffic_flows_verified++;
|
||||
session->session_traffic_flows_verified++;
|
||||
} else {
|
||||
if(session->network_ipv4_rx_last_seq +1 != bbl->flow_seq) {
|
||||
interface->stats.session_ipv4_loss++;
|
||||
@@ -1849,6 +1853,7 @@ bbl_rx_handler_network(bbl_ethernet_header_t *eth, bbl_interface_s *interface) {
|
||||
if(!session->network_ipv6_rx_first_seq) {
|
||||
session->network_ipv6_rx_first_seq = bbl->flow_seq;
|
||||
interface->ctx->stats.session_traffic_flows_verified++;
|
||||
session->session_traffic_flows_verified++;
|
||||
} else {
|
||||
if(session->network_ipv6_rx_last_seq +1 != bbl->flow_seq) {
|
||||
interface->stats.session_ipv6_loss++;
|
||||
@@ -1869,6 +1874,7 @@ bbl_rx_handler_network(bbl_ethernet_header_t *eth, bbl_interface_s *interface) {
|
||||
if(!session->network_ipv6pd_rx_first_seq) {
|
||||
session->network_ipv6pd_rx_first_seq = bbl->flow_seq;
|
||||
interface->ctx->stats.session_traffic_flows_verified++;
|
||||
session->session_traffic_flows_verified++;
|
||||
} else {
|
||||
if(session->network_ipv6pd_rx_last_seq +1 != bbl->flow_seq) {
|
||||
interface->stats.session_ipv6pd_loss++;
|
||||
|
||||
+5
-21
@@ -271,6 +271,8 @@ bbl_session_update_state(bbl_ctx_s *ctx, bbl_session_s *session, session_state_t
|
||||
session->l2tp_session = NULL;
|
||||
|
||||
/* Session traffic */
|
||||
session->session_traffic_flows = 0;
|
||||
session->session_traffic_flows_verified = 0;
|
||||
session->access_ipv4_tx_flow_id = 0;
|
||||
session->access_ipv4_tx_seq = 0;
|
||||
session->access_ipv4_tx_packet_len = 0;
|
||||
@@ -683,7 +685,6 @@ bbl_session_json(bbl_session_s *session)
|
||||
json_t *root = NULL;
|
||||
json_t *session_traffic = NULL;
|
||||
json_t *a10nsp_session = NULL;
|
||||
bbl_ctx_s *ctx;
|
||||
|
||||
struct timespec now;
|
||||
|
||||
@@ -699,8 +700,6 @@ bbl_session_json(bbl_session_s *session)
|
||||
const char *dhcpv6_dns1 = NULL;
|
||||
const char *dhcpv6_dns2 = NULL;
|
||||
|
||||
int flows = 0;
|
||||
int flows_verified = 0;
|
||||
uint32_t seconds = 0;
|
||||
uint32_t dhcp_lease_expire = 0;
|
||||
uint32_t dhcp_lease_expire_t1 = 0;
|
||||
@@ -713,8 +712,6 @@ bbl_session_json(bbl_session_s *session)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ctx = session->interface->ctx;
|
||||
|
||||
if(session->ip_address) {
|
||||
ipv4 = format_ipv4_address(&session->ip_address);
|
||||
}
|
||||
@@ -749,23 +746,10 @@ bbl_session_json(bbl_session_s *session)
|
||||
dhcpv6_dns2 = format_ipv6_address(&session->dhcpv6_dns2);
|
||||
}
|
||||
|
||||
if(ctx->config.session_traffic_ipv4_pps || ctx->config.session_traffic_ipv6_pps || ctx->config.session_traffic_ipv6pd_pps) {
|
||||
if(session->access_ipv4_tx_flow_id) flows++;
|
||||
if(session->access_ipv6_tx_flow_id) flows++;
|
||||
if(session->access_ipv6pd_tx_flow_id) flows++;
|
||||
if(session->network_ipv4_tx_flow_id) flows++;
|
||||
if(session->network_ipv6_tx_flow_id) flows++;
|
||||
if(session->network_ipv6pd_tx_flow_id) flows++;
|
||||
if(session->access_ipv4_rx_first_seq) flows_verified++;
|
||||
if(session->access_ipv6_rx_first_seq) flows_verified++;
|
||||
if(session->access_ipv6pd_rx_first_seq) flows_verified++;
|
||||
if(session->network_ipv4_rx_first_seq) flows_verified++;
|
||||
if(session->network_ipv6_rx_first_seq) flows_verified++;
|
||||
if(session->network_ipv6pd_rx_first_seq) flows_verified++;
|
||||
|
||||
if(session->session_traffic_flows) {
|
||||
session_traffic = json_pack("{si si si si si si si si si si si si si si si si si si si si si si si si si si}",
|
||||
"total-flows", flows,
|
||||
"verified-flows", flows_verified,
|
||||
"total-flows", session->session_traffic_flows,
|
||||
"verified-flows", session->session_traffic_flows_verified,
|
||||
"first-seq-rx-access-ipv4", session->access_ipv4_rx_first_seq,
|
||||
"first-seq-rx-access-ipv6", session->access_ipv6_rx_first_seq,
|
||||
"first-seq-rx-access-ipv6pd", session->access_ipv6pd_rx_first_seq,
|
||||
|
||||
@@ -262,6 +262,10 @@ typedef struct bbl_session_
|
||||
|
||||
/* Session Traffic */
|
||||
bool session_traffic;
|
||||
|
||||
uint8_t session_traffic_flows;
|
||||
uint8_t session_traffic_flows_verified;
|
||||
|
||||
uint64_t access_ipv4_tx_flow_id;
|
||||
uint64_t access_ipv4_tx_seq;
|
||||
uint8_t *access_ipv4_tx_packet_template;
|
||||
|
||||
@@ -156,6 +156,7 @@ bbl_session_traffic_add_ipv4_l2tp(bbl_ctx_s *ctx, bbl_session_s *session,
|
||||
session->network_ipv4_tx_seq = 1;
|
||||
if(!session->network_ipv4_tx_flow_id) {
|
||||
ctx->stats.session_traffic_flows++;
|
||||
session->session_traffic_flows++;
|
||||
}
|
||||
session->network_ipv4_tx_flow_id = ctx->flow_id++;
|
||||
bbl.flow_id = session->network_ipv4_tx_flow_id;
|
||||
@@ -221,6 +222,7 @@ bbl_session_traffic_add_ipv4_a10nsp(bbl_ctx_s *ctx, bbl_session_s *session,
|
||||
session->network_ipv4_tx_seq = 1;
|
||||
if(!session->network_ipv4_tx_flow_id) {
|
||||
ctx->stats.session_traffic_flows++;
|
||||
session->session_traffic_flows++;
|
||||
}
|
||||
session->network_ipv4_tx_flow_id = ctx->flow_id++;
|
||||
bbl.flow_id = session->network_ipv4_tx_flow_id;
|
||||
@@ -305,6 +307,7 @@ bbl_session_traffic_add_ipv4(bbl_ctx_s *ctx, bbl_session_s *session)
|
||||
session->access_ipv4_tx_seq = 1;
|
||||
if(!session->access_ipv4_tx_flow_id) {
|
||||
ctx->stats.session_traffic_flows++;
|
||||
session->session_traffic_flows++;
|
||||
}
|
||||
session->access_ipv4_tx_flow_id = ctx->flow_id++;
|
||||
bbl.flow_id = session->access_ipv4_tx_flow_id;
|
||||
@@ -340,6 +343,7 @@ bbl_session_traffic_add_ipv4(bbl_ctx_s *ctx, bbl_session_s *session)
|
||||
session->network_ipv4_tx_seq = 1;
|
||||
if(!session->network_ipv4_tx_flow_id) {
|
||||
ctx->stats.session_traffic_flows++;
|
||||
session->session_traffic_flows++;
|
||||
}
|
||||
session->network_ipv4_tx_flow_id = ctx->flow_id++;
|
||||
bbl.flow_id = session->network_ipv4_tx_flow_id;
|
||||
@@ -386,6 +390,7 @@ bbl_session_traffic_add_ipv6(bbl_ctx_s *ctx, bbl_session_s *session, bool ipv6_p
|
||||
session->access_ipv6pd_tx_seq = 1;
|
||||
if(!session->access_ipv6pd_tx_flow_id) {
|
||||
ctx->stats.session_traffic_flows++;
|
||||
session->session_traffic_flows++;
|
||||
}
|
||||
session->access_ipv6pd_tx_flow_id = ctx->flow_id++;
|
||||
bbl.flow_id = session->access_ipv6pd_tx_flow_id;
|
||||
@@ -399,6 +404,7 @@ bbl_session_traffic_add_ipv6(bbl_ctx_s *ctx, bbl_session_s *session, bool ipv6_p
|
||||
session->access_ipv6_tx_seq = 1;
|
||||
if(!session->access_ipv6_tx_flow_id) {
|
||||
ctx->stats.session_traffic_flows++;
|
||||
session->session_traffic_flows++;
|
||||
}
|
||||
session->access_ipv6_tx_flow_id = ctx->flow_id++;
|
||||
bbl.flow_id = session->access_ipv6_tx_flow_id;
|
||||
@@ -451,6 +457,7 @@ bbl_session_traffic_add_ipv6(bbl_ctx_s *ctx, bbl_session_s *session, bool ipv6_p
|
||||
session->network_ipv6pd_tx_seq = 1;
|
||||
if(!session->network_ipv6pd_tx_flow_id) {
|
||||
ctx->stats.session_traffic_flows++;
|
||||
session->session_traffic_flows++;
|
||||
}
|
||||
session->network_ipv6pd_tx_flow_id = ctx->flow_id++;
|
||||
bbl.flow_id = session->network_ipv6pd_tx_flow_id;
|
||||
@@ -463,6 +470,7 @@ bbl_session_traffic_add_ipv6(bbl_ctx_s *ctx, bbl_session_s *session, bool ipv6_p
|
||||
session->network_ipv6_tx_seq = 1;
|
||||
if(!session->network_ipv6_tx_flow_id) {
|
||||
ctx->stats.session_traffic_flows++;
|
||||
session->session_traffic_flows++;
|
||||
}
|
||||
session->network_ipv6_tx_flow_id = ctx->flow_id++;
|
||||
bbl.flow_id = session->network_ipv6_tx_flow_id;
|
||||
|
||||
Reference in New Issue
Block a user