diff --git a/code/bngblaster/src/bbl_session.c b/code/bngblaster/src/bbl_session.c index cc835985..ee58c9e3 100644 --- a/code/bngblaster/src/bbl_session.c +++ b/code/bngblaster/src/bbl_session.c @@ -1299,7 +1299,7 @@ bbl_session_json(bbl_session_s *session) } if(session->access_type == ACCESS_TYPE_PPPOE) { - root = json_pack("{ss si ss ss* si si ss si si ss ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* sI sI si sI sI sI sI sI sI si si si si si si si si so* so* so*}", + root = json_pack("{ss si ss ss* si si ss si si ss ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* ss* sI sI si sI sI sI sI sI sI si si si si si si so* so* so*}", "type", "pppoe", "session-id", session->session_id, "session-state", session_state_string(session->session_state), @@ -1337,8 +1337,6 @@ bbl_session_json(bbl_session_s *session) "rx-accounting-packets", session->stats.accounting_packets_rx, "tx-accounting-bytes", session->stats.accounting_bytes_tx, "rx-accounting-bytes", session->stats.accounting_bytes_rx, - "tx-arp", session->stats.arp_tx, - "rx-arp", session->stats.arp_rx, "tx-igmp", session->stats.igmp_tx, "rx-igmp", session->stats.igmp_rx, "tx-icmp", session->stats.icmp_tx, @@ -1490,7 +1488,7 @@ int bbl_session_ctrl_counters(int fd, uint32_t session_id __attribute__((unused)), json_t *arguments __attribute__((unused))) { int result = 0; - json_t *root = json_pack("{ss si s{si si si si si si si si si si si si si si sf sf sf sf si si si si}}", + json_t *root = json_pack("{ss si s{si si si si si si si si si si si si si si si sf sf sf sf si si si si}}", "status", "ok", "code", 200, "session-counters", @@ -1499,6 +1497,7 @@ bbl_session_ctrl_counters(int fd, uint32_t session_id __attribute__((unused)), j "sessions-ipoe", g_ctx->sessions_ipoe, "sessions-established", g_ctx->sessions_established, "sessions-established-max", g_ctx->sessions_established_max, + "sessions-outstanding", g_ctx->sessions_outstanding, "sessions-terminated", g_ctx->sessions_terminated, "sessions-flapped", g_ctx->sessions_flapped, "dhcp-sessions", g_ctx->dhcp_requested, diff --git a/code/bngblaster/src/bbl_tx.c b/code/bngblaster/src/bbl_tx.c index 6968ba82..df0d16b9 100644 --- a/code/bngblaster/src/bbl_tx.c +++ b/code/bngblaster/src/bbl_tx.c @@ -252,8 +252,12 @@ bbl_tx_pap_timeout(timer_s *timer) bbl_session_s *session = timer->data; if(session->session_state == BBL_PPP_AUTH) { session->access_interface->stats.pap_timeout++; - session->send_requests |= BBL_SEND_PAP_REQUEST; - bbl_session_tx_qnode_insert(session); + if(session->auth_retries > g_ctx->config.authentication_retry) { + bbl_session_clear(session); + } else { + session->send_requests |= BBL_SEND_PAP_REQUEST; + bbl_session_tx_qnode_insert(session); + } } } @@ -288,7 +292,7 @@ bbl_tx_encode_packet_pap_request(bbl_session_s *session) pap.password_len = strlen(session->password); timer_add(&g_ctx->timer_root, &session->timer_auth, "Authentication Timeout", - 5, 0, session, &bbl_tx_pap_timeout); + g_ctx->config.authentication_timeout, 0, session, &bbl_tx_pap_timeout); access_interface->stats.pap_tx++; return encode_ethernet(session->write_buf, &session->write_idx, ð); @@ -300,8 +304,12 @@ bbl_tx_chap_timeout(timer_s *timer) bbl_session_s *session = timer->data; if(session->session_state == BBL_PPP_AUTH) { session->access_interface->stats.chap_timeout++; - session->send_requests |= BBL_SEND_CHAP_RESPONSE; - bbl_session_tx_qnode_insert(session); + if(session->auth_retries > g_ctx->config.authentication_retry) { + bbl_session_clear(session); + } else { + session->send_requests |= BBL_SEND_CHAP_RESPONSE; + bbl_session_tx_qnode_insert(session); + } } } @@ -337,7 +345,7 @@ bbl_tx_encode_packet_chap_response(bbl_session_s *session) chap.name_len = strlen(session->username); timer_add(&g_ctx->timer_root, &session->timer_auth, "Authentication Timeout", - 5, 0, session, &bbl_tx_chap_timeout); + g_ctx->config.authentication_timeout, 0, session, &bbl_tx_chap_timeout); access_interface->stats.chap_tx++; return encode_ethernet(session->write_buf, &session->write_idx, ð);