Update sessions-pending cmd

Display session with session traffic
not verified here as well.
This commit is contained in:
Christian Giese
2021-11-09 14:49:45 +01:00
parent 10c717b981
commit 49e9efe04a
5 changed files with 31 additions and 24 deletions
+8 -3
View File
@@ -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);
}
}
+6
View File
@@ -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
View File
@@ -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,
+4
View File
@@ -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;
+8
View File
@@ -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;