mirror of
https://github.com/rtbrick/bngblaster.git
synced 2024-05-06 15:54:57 +00:00
Add L2TP session data rx/tx stats
This commit is contained in:
+5
-3
@@ -281,8 +281,8 @@ Following an example with 30 L2TP LNS servers.
|
||||
"control-packets-rx-out-of-order": 0,
|
||||
"control-packets-tx": 102,
|
||||
"control-packets-tx-retry": 0,
|
||||
"control-data-rx": 1406,
|
||||
"control-data-tx": 206
|
||||
"data-packets-rx": 1406,
|
||||
"data-packets-tx": 206
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -311,7 +311,9 @@ The `l2tp-sessions` command returns all L2TP sessions.
|
||||
"peer-tx-bps": 48000,
|
||||
"peer-rx-bps": 1000,
|
||||
"peer-ari": "DEU.RTBRICK.1",
|
||||
"peer-aci": "0.0.0.0/0.0.0.0 eth 0:1"
|
||||
"peer-aci": "0.0.0.0/0.0.0.0 eth 0:1",
|
||||
"data-packets-rx": 79,
|
||||
"data-packets-tx": 79
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+6
-4
@@ -768,8 +768,8 @@ bbl_ctrl_l2tp_tunnels(int fd, bbl_ctx_s *ctx, session_key_t *key __attribute__((
|
||||
"control-packets-rx-out-of-order", l2tp_tunnel->stats.control_rx_ooo,
|
||||
"control-packets-tx", l2tp_tunnel->stats.control_tx,
|
||||
"control-packets-tx-retry", l2tp_tunnel->stats.control_retry,
|
||||
"control-data-rx", l2tp_tunnel->stats.data_rx,
|
||||
"control-data-tx", l2tp_tunnel->stats.data_tx);
|
||||
"data-packets-rx", l2tp_tunnel->stats.data_rx,
|
||||
"data-packets-tx", l2tp_tunnel->stats.data_tx);
|
||||
json_array_append(tunnels, tunnel);
|
||||
}
|
||||
l2tp_server = l2tp_server->next;
|
||||
@@ -791,7 +791,7 @@ bbl_ctrl_l2tp_tunnels(int fd, bbl_ctx_s *ctx, session_key_t *key __attribute__((
|
||||
|
||||
json_t *
|
||||
l2tp_session_json(bbl_l2tp_session_t *l2tp_session) {
|
||||
return json_pack("{ss si si si si ss ss ss ss si si ss ss}",
|
||||
return json_pack("{ss si si si si ss ss ss ss si si ss ss si si}",
|
||||
"state", l2tp_session_state_string(l2tp_session->state),
|
||||
"tunnel-id", l2tp_session->key.tunnel_id,
|
||||
"session-id", l2tp_session->key.session_id,
|
||||
@@ -804,7 +804,9 @@ l2tp_session_json(bbl_l2tp_session_t *l2tp_session) {
|
||||
"peer-tx-bps", l2tp_session->peer_tx_bps,
|
||||
"peer-rx-bps", l2tp_session->peer_rx_bps,
|
||||
"peer-ari", string_or_na(l2tp_session->peer_ari),
|
||||
"peer-aci", string_or_na(l2tp_session->peer_aci));
|
||||
"peer-aci", string_or_na(l2tp_session->peer_aci),
|
||||
"data-packets-rx", l2tp_session->stats.data_rx,
|
||||
"data-packets-tx", l2tp_session->stats.data_tx);
|
||||
}
|
||||
|
||||
ssize_t
|
||||
|
||||
@@ -491,6 +491,7 @@ bbl_l2tp_send_data(bbl_l2tp_session_t *l2tp_session, uint16_t protocol, void *ne
|
||||
q->packet_len = len;
|
||||
CIRCLEQ_INSERT_TAIL(&interface->l2tp_tx_qhead, q, tx_qnode);
|
||||
l2tp_tunnel->stats.data_tx++;
|
||||
l2tp_session->stats.data_tx++;
|
||||
interface->stats.l2tp_data_tx++;
|
||||
} else {
|
||||
LOG(ERROR, "L2TP Data Encode Error!\n");
|
||||
@@ -847,6 +848,7 @@ bbl_l2tp_data_rx(bbl_ethernet_header_t *eth, bbl_l2tp_t *l2tp, bbl_interface_s *
|
||||
return;
|
||||
}
|
||||
|
||||
l2tp_session->stats.data_rx++;
|
||||
switch (l2tp->protocol) {
|
||||
case PROTOCOL_LCP:
|
||||
lcp_rx = (bbl_lcp_t*)l2tp->next;
|
||||
|
||||
@@ -212,6 +212,11 @@ typedef struct bbl_l2tp_session_
|
||||
uint16_t session_id;
|
||||
} key;
|
||||
|
||||
struct {
|
||||
uint64_t data_rx; /* Session data traffic received */
|
||||
uint64_t data_tx; /* Session data traffic send */
|
||||
} stats;
|
||||
|
||||
uint16_t peer_session_id;
|
||||
|
||||
bool data_sequencing;
|
||||
@@ -250,6 +255,7 @@ typedef struct bbl_l2tp_session_
|
||||
char *peer_sub_address;
|
||||
char *peer_ari;
|
||||
char *peer_aci;
|
||||
|
||||
} bbl_l2tp_session_t;
|
||||
|
||||
const char* l2tp_message_string(l2tp_message_type type);
|
||||
|
||||
Reference in New Issue
Block a user